PyQt6第四章控件功能之4.2常用控件(4.2.8下拉列表框:QComboBox)

下拉列表框属于QcomboBox类,是一个集按钮和下拉选项于一体的控件,也被称为下拉列表框。它的常用方法如下:

addItem():添加一个下拉选项

addItems():从列表中添加下拉选项。一次可添加或者多项

Clear():删除下拉选项集合中的所有选项

count():返回下拉选项集合中的数目

curTentText():返回选中选项的文本

itemText(i):获取索引为i的item的选项文本

currentIndex():返回选中项的索引

setItemText(int index, text):改变序号为index项的文本

QComboBox类中的常用信号如下:

import sys  # 导入sys模块,用于获取或操作Python解释器的相关变量和函数。

from PyQt6.QtWidgets import *  # 从PyQt6的QtWidgets模块中导入所有类和函数,用于创建图形用户界面。


class MyWidget(QWidget):  # 定义一个名为MyWidget的新类,它继承自QWidget。

    def __init__(self, parent=None):  # 定义类的初始化方法,parent参数用于指定父窗口,默认为None。

        super(MyWidget, self).__init__(parent)  # 调用父类QWidget的初始化方法。

        self.setWindowTitle("ComBox测试")  # 设置窗口的标题为“ComBox测试”。

        self.resize(300, 100)  # 设置窗口的大小为300x100像素。

        self.lb1 = QLabel("选择课程:")  # 创建一个QLabel对象,用于显示文本“选择课程:”。

        self.lb2 = QLabel(" ")  # 创建一个QLabel对象,初始时显示一个空格,后续用于显示选中的课程。

        self.cb = QComboBox()  # 创建一个QComboBox对象,用于显示一个下拉列表框。

        self.cb.addItem("计算机")  # 向下拉列表框中添加一个名为“计算机”的选项。

        self.cb.addItems(["软件工程", "通信工程", "人工智能"])  # 向下拉列表框中添加多个选项:软件工程、通信工程、人工智能。

        self.cb.currentIndexChanged.connect(self.selectFunc)  # 当下拉列表框中的当前选项改变时,调用selectFunc方法。

        vlayout = QVBoxLayout()  # 创建一个垂直布局对象。

        vlayout.addWidget(self.lb1)  # 将self.lb1(显示“选择课程:”的QLabel)添加到垂直布局中。

        vlayout.addWidget(self.cb)  # 将下拉列表框添加到垂直布局中。

        vlayout.addWidget(self.lb2)  # 将self.lb2(用于显示选中课程的QLabel)添加到垂直布局中。

        self.setLayout(vlayout)  # 将MyWidget的布局设置为之前创建的垂直布局。

    def selectFunc(self, i):  # 定义一个方法,用于处理下拉列表框的选项改变事件。i是当前选项的索引。

        selectItem = self.cb.currentText()  # 获取当前选中的选项的文本。

        for count in range(self.cb.count()):  # 遍历下拉列表框中的所有选项。

            if self.cb.itemText(count) == selectItem:  # 如果当前选项的文本与遍历到的选项文本相同。

                self.lb2.setText("选择" + str(count) + "项: " + selectItem)  # 设置self.lb2的文本为“选择x项: 文本”,其中x是选项的索引。


if __name__ == '__main__':  # 检查当前脚本是否是作为主程序运行。

    app = QApplication(sys.argv)  # 创建一个QApplication对象,这是PyQt6应用程序的入口点。

    w = MyWidget()  # 创建一个MyWidget对象。

    w.show()  # 显示MyWidget窗口。

    sys.exit(app.exec())  # 进入Qt应用程序的主循环,等待用户交互。当应用程序结束时,通过sys.exit退出Python解释器。

这段代码主要实现了一个基于PyQt6的图形用户界面(GUI)应用程序,该应用程序包含一个下拉列表(QComboBox)和两个标签(QLabel)。下拉列表用于展示几个课程选项,用户可以从中选择一个。当用户选择某个课程时,第二个标签会更新以显示用户的选择。

使用的布局和控件

  • 布局QVBoxLayout,这是一个垂直布局,它将控件垂直排列。

  • 控件

    • QWidget:基础窗口部件。
    • QLabel:用于显示文本标签的控件。这里使用了两个标签,一个用于显示提示信息“选择课程:”,另一个用于显示用户的选择。
    • QComboBox:下拉列表控件,用于展示多个选项,用户可以从中选择一个。

说明:

1.下拉列表框中有四个选项,可以使用QComboBox的addItem方法添加。当下拉列表框中的选项发生改变时将发送currentIndexChanged信号,关联槽函数selectionChange。

2.先获得当前选择的列表项:

selectItem=self.cb.currentText()

 然后用for循环按序遍历下拉列表框中的选项,将每一项与当前选择项比较:

if self.cb.itemText(count)==selectItem:

 获得当前选择项在列表中的序号。

关键语句

  1. self.setWindowTitle("ComBox测试"):设置窗口的标题为“ComBox测试”。

  2. self.resize(300, 100):设置窗口的大小为300x100像素。

  3. self.cb = QComboBox():创建一个下拉列表控件。

  4. self.cb.addItem("计算机") 和 self.cb.addItems(["软件工程","通信工程","人工智能"]):向下拉列表中添加课程选项。

  5. self.cb.currentIndexChanged.connect(self.selectFunc):连接下拉列表的currentIndexChanged信号到selectFunc槽函数。当用户在下拉列表中更改选项时,selectFunc函数会被调用。

  6. vlayout = QVBoxLayout():创建一个垂直布局对象。

  7. vlayout.addWidget(self.lb1)vlayout.addWidget(self.cb)vlayout.addWidget(self.lb2)将标签和下拉列表控件添加到垂直布局中。

  8. self.setLayout(vlayout)将垂直布局设置为窗口的布局。

  9. def selectFunc(self, i)定义一个槽函数,该函数在用户更改下拉列表中的选项时被调用。

  10. selectItem = self.cb.currentText():获取下拉列表中当前选中的文本。

  11. 循环部分:通过循环遍历下拉列表中的所有项目,找到与选中项匹配的文本,并更新第二个标签的文本,显示用户的选择。

总的来说,这段代码创建了一个简单的窗口,窗口中包含一个提示标签、一个下拉列表控件和一个用于显示用户选择的标签。当用户在下拉列表中选择一个课程时,第二个标签会更新以显示用户的选择。

  • 17
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值