- QComboBox复合实践
主要内容 #
完成效果 #
完成本节课程,能学会在窗口应用程序上新增QComboBox按钮,并且当选择内容时,内容在QLineEdit上显示,支持多次选择。
效果如下:
收获 #
学习完本节内容,我们会了解QComboBox复合实践的具体步骤,实现控件间的信息传递等进阶操作。
1.QComboBox复合实践 #
在本复合实践中,需要在窗口应用程序中新增QComboBox,并通过信号槽机制实现当选择内容时,选项的内容在QLineEdit上显示。
以下是代码实现示例:
from PyQt5.QtWidgets import QWidget, QLineEdit, QComboBox, QApplication, QLabel import sys class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.edit = QLineEdit("Ubuntu", self) # 创建一个文本编辑框,初始显示‘ubuntu’ # 创建一个下拉选择框QComboBox,包括五个下拉选项 combo = QComboBox(self) combo.addItem("Ubuntu") combo.addItem("Mandriva") combo.addItem("Fedora") combo.addItem("Arch") combo.addItem("Gentoo") # 移动编辑框和下拉选择框的位置 combo.move(50, 50) self.edit.move(50, 100) # 如果用户在下拉选择框选择了一个选项,则触发activated[str]信号,该信号与槽函数onActivated相连 # 在发送信号时,还自动将用户选择的选项作为参数传入槽函数onActivated combo.activated[str].connect(self.onActivated) self.setGeometry(300, 300, 300, 200) self.setWindowTitle('QComboBox') self.show() def onActivated(self, text): # 槽函数 # 让编辑框显示用户选择的选项 self.edit.setText(text) app = QApplication(sys.argv) # 创建应用程序 ex = Example() # 创建窗口对象 sys.exit(app.exec_()) # 设置关闭窗口后结束进程
拓展练习
1、制作1个下拉框(QComboBox),下拉框有3个选项:
当选择选项1时,显示turtle画正方形的图形
当选择选项2时,显示turtle画三角形的图形
当选择选项3时,显示turtle画圆形的图形
2、在练习1的基础上再添加一个选项4,当选择选项4时,显示turtle画风车的图形(风车代码请参考第二期第040课)
小结 #
习题 #
- 习题1:类似地,将QLineEdit改为QLabel,选择选项时显示选项文本在QLabel上。