知识回顾:
1.掌握Qpixmap图片对象
2.掌握qlabel控件装载和调整图片
本节知识视频教程
以下开始文字讲解:
一、目标案例:省市联动选择
1.需要两个下拉列表
2.点击第一个下拉列表后,会联动第二个列表中的内容
3.要求使用frame的绝对布局
应用效果
二、下拉框combobox使用
1.基本配置
主要用于选择,比如省市联动选择必须要载入Qcombobox类。
实例化类为一个对象,对这个对象进行配置,实则就是对下拉列表的配置。
combo1=QComboBox(myframe1) 在实例化的时候,要选择父容器
combo1.move(20,0)
我们通过addItem来往combobox中装入项目。
combo1.addItem("选择省份")
combo1.addItem("浙江")
combo1.addItem("江苏")
combo1.addItem("安徽")
用到clear方法将所有项目进行清空。
2.下拉选择事件
Combobox的点击事件
理解为激活actived信号。
信号有两种传递方式:
第一种:传递字符串,这个实则传递的是选择的文本。
combo1.activated[str].connect(自定义槽方法)
第二种:传递整型变量,这个传递的是选择的索引。索引默认从0开始。
第一项的索引是0,第二项的索引是1,依次类推..
combo1.activated[int].connect(自定义槽方法)
省市联动的combobox
注意:必须要将需要联动的控件做成类对象的属性。实际上就是加上self.
三、扩展知识内容
下拉列表框也可以进行输入,但是需要对方法进行配置。
配置setEditable 为True:
combo1.setEditable(True)
对应的信号为: editTextChanged
那么我们同样可以采用信号槽的方式实现编辑时候的事件处理函数。
得出的经验特点:
我们在书写信号的时候,这些信号基本上都是以ed进行结尾的。
四、总结强调
1.掌握qcombobox的载入布局与项目加载。
2.掌握下拉列表的编辑和对应事件。
3.掌握联动的思想。
本节知识源代码:
import sysfrom PyQt5.QtWidgets import QApplication,QWidget,QLabel,QComboBox,QFrameclass MyClass(QWidget):def __init__(self):super(MyClass, self).__init__()self.initUI()def initUI(self):self.setWindowTitle("刘金玉编程")self.setGeometry(300,100,400,300)myframe1=QFrame(self)myframe1.move(50,50)lbl1=QLabel("省",myframe1)lbl1.move(0,3)combo1=QComboBox(myframe1)combo1.move(20,0)# combo1.setEditable(True)combo1.activated[str].connect(self.myActived)#省份combo1.addItem("选择省份")combo1.addItem("浙江")combo1.addItem("江苏")combo1.addItem("安徽")#市级lbl1 = QLabel("市", myframe1)lbl1.move(100, 3)self.combo2 = QComboBox(myframe1)self.combo2.move(120, 0)self.show()def myActived(self,s):self.combo2.clear()if s=="浙江":self.combo2.addItem("杭州")self.combo2.addItem("宁波")self.combo2.addItem("温州")elif s=="江苏":self.combo2.addItem("苏州")self.combo2.addItem("无锡")self.combo2.addItem("扬州")self.combo2.addItem("南京")if __name__=="__main__":app=QApplication(sys.argv)mc=MyClass()app.exec_()
长按关注公众号
相关文章: