标签2在标签1的下方写的代码
发布时间:2025-06-24 19:33:50 作者:北方职教升学中心 阅读量:627
只有点击到子控件,才让子控件背景色变红classWindow(QWidget):#重写父对象的鼠标点击事件,来接收子控件传递来的事件消息defmousePressEvent(self,evt):local_x =evt.x()local_y =evt.y()#根据鼠标位置,查找是否有子控件sub_widget =self.childAt(local_x,local_y)#如果有,九江子控件背景颜色设为红色ifsub_widget:sub_widget.setStyleSheet("background-color: red;")print("被点击了",local_x,local_y)# 1. 创建一个应用程序对象app =QApplication(sys.argv)# 2. 控件的操作# 2.1 创建控件window =Window()# 2.2 设置控件window.setWindowTitle("父子关系案例")window.resize(500,500)#循环创建几个子标签#默认点击标签,标签并没有对事件进行处理。
标签2在标签1的下方写的代码。
以下是一些用于层级控制的常用API:
lower() 函数可以将一个QWidget置于其兄弟QWidget的底部,即降低其显示级别。标签2的级别比标签1高。
代码展示:
# 0. 导入需要的包和模块fromPyQt5.Qt import*importsysclassLabel(QLabel):defmousePressEvent(self,evt):#点击哪个控件,就将哪个控件显示为顶层self.raise_()# 1. 创建一个应用程序对象app =QApplication(sys.argv)# 2. 控件的操作# 2.1 创建控件window =QWidget()# 2.2 设置控件window.setWindowTitle("层级关系调整")window.resize(500,500)label1 =Label(window)label1.setText("标签1")label1.resize(200,200)label1.setStyleSheet("background-color: red;")label2 =Label(window)label2.setText("标签2")label2.resize(200,200)label2.setStyleSheet("background-color: green;")label2.move(100,100)# label2.lower()# label1.raise_()# label2.stackUnder(label1)# 2.3 展示控件window.show()# 3. 应用程序的执行, 进入到消息循环sys.exit(app.exec_())
点击哪个标签,哪个标签显示到最上面
点击红色标签
点击绿色标签