知识回顾:
html
1.掌握Qpixmap图片对象python
2.掌握qlabel控件装载和调整图片web
本节知识视频教程编程
如下开始文字讲解:ruby
1、目标案例:省市联动选择微信
1.须要两个下拉列表app
2.点击第一个下拉列表后,会联动第二个列表中的内容ide
3.要求使用frame的绝对布局函数
应用效果布局
2、下拉框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.
3、扩展知识内容
下拉列表框也能够进行输入,可是须要对方法进行配置。
配置setEditable 为True:
combo1.setEditable(True)
对应的信号为: editTextChanged
那么咱们一样能够采用信号槽的方式实现编辑时候的事件处理函数。
得出的经验特色:
咱们在书写信号的时候,这些信号基本上都是以ed进行结尾的。
4、总结强调
1.掌握qcombobox的载入布局与项目加载。
2.掌握下拉列表的编辑和对应事件。
3.掌握联动的思想。
本节知识源代码:
import sysfrom PyQt5.QtWidgets import QApplication,QWidget,QLabel,QComboBox,QFrame
class 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_()
长按关注公众号
相关文章:
本文分享自微信公众号 - 编程创造城市(bcczcs)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。