跳至正文
View Categories

< 1 min read

    主要内容 #

  1. 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课)

小结 #

  • 学习了如何添加QComboBox控件。
  • 学习了如何将QComboBox控件的信号关联到槽函数,然后槽函数进行处理。
  • 习题 #

    1. 习题1:类似地,将QLineEdit改为QLabel,选择选项时显示选项文本在QLabel上。