最近练习一个不用pygame等第三方库作一个类似游戏框架界面,用到了大量的QLabel标签控件来加载各渐变图片形成类似角色在动的动画,控件堆叠在一起时对鼠标单击等的先后顺序是什么样的,作了一个简单的示例来验证,即鼠标单击在点位置上有多个控件对象实例时,总是只对堆叠在最上面的一控件触发相关事件或信号,下面的控件不会响应此单击事件。被单击的控件单击事件被触发后可以再发送信号到主窗体,通过主窗体对应响应的槽函数来对堆叠在下面的控件进行处理。
示例PYTHON + QT5码的代码如下:
import sys
import PyQt5
from PyQt5 import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5 import QtCore
######################################################################################
class MyMainFrm(QMainWindow):
def __init__(self, parent=None):
super(MyMainFrm, self).__init__(parent)
self.setWindowIcon(QIcon("5G.JPG"))
self.resize(800,800)
self.setFixedSize(800,800)
self.resize(400,300) #设置了固定尺寸之后,尺寸便不可修改!
w=25
h=25
n=0
self.labs=[] #定义标签集列表