• Pyqt5 combobox


    起因

    1. combobox的使用和介绍
    2. 两个combobox 联动

    开始

    介绍

    Combobox是Qt中的下拉复选框,
    注意:在添加列表选项时,可以一个个添加,也可以直接使用列表一次性添加多个;
    添加多个后 会默认显示索引为0的元素。

    常用方法

    • 控件常用函数:
    函数 意义
    .addItem(string) #添加字符串项到Item
    .addItems(list) #添加列表或元组元素到Item
    .clear() #清除所有Item
    .clearEditText() #清除编辑框内容
    .count() #返回Item数目
    .currentIndex() #返回当前选择索引,从0开始
    .currentText() #返回当前选择内容
    .insertItem(index,string) #插入字符串项到Item项index后
    .insertItems(index,list) #插入列表或元组元素到Item项index后
    .insertSeparator(index) #插入分隔符到Item项index后
    .itemText(index) #返回Item项index的内容
    .removeItem(index) #删除Item项index
    .setCurrentIndex(index) #设置Item项index为当前选择
    .setEditable(True) #设置选框可编辑
    .setEditText(string) #设置编辑框内容
    .setItemText(index,string) #设置Item项index内容为字符串值
    • 信号:

    案例

    import sys
    from PyQt5.QtCore import *
    from PyQt5.QtGui import *
    from PyQt5.QtWidgets import *
    
    
    class QComboBoxDemo(QWidget):
        def __init__(self):
            super(QComboBoxDemo, self).__init__()
            self.initUI()
    
        def initUI(self):
            self.setWindowTitle('下拉列表控件演示')
            self.resize(300, 100)
            layout = QVBoxLayout()  # 设置垂直布局
            self.label = QLabel('选择种类')  # label 1
            self.label1 = QLabel("选择需求")  # label 2
    
            self.cb = QComboBox()  # 创建下拉列表对象1
            self.cb1 = QComboBox()  # 创建下拉列表对象2
            self.cb.addItem('坚果')  # 添加单个控件
            self.cb.addItem('小球')
            self.cb.addItems(['螺母', '未知'])  # 一次添加多个控件
    
            # 当下拉复选框内容被选中时  发送信号
            self.cb.currentIndexChanged.connect(self.selectionChange)  # 获取当前选中元素的索引 并按照指定格式输出
            self.cb.activated[str].connect(self.change)  # 获取当前选中元素的索引
    
            # 把label和combobox 添加进 垂直布局
            layout.addWidget(self.label)
            layout.addWidget(self.cb)
            layout.addWidget(self.label1)
            layout.addWidget(self.cb1)
            self.setLayout(layout)
    
        def selectionChange(self, i):  # 默认传递两个参数 第二个当前选择的索引
            self.label.setText(self.cb.currentText())  # currentText 返回当前下拉复选框选择的内容
            self.label.adjustSize()
            for count in range(self.cb.count()):  # 获取所有的元素
                print('item' + str(count) + '=' + self.cb.itemText(count))
            print('current index', i, 'selection changed', self.cb.currentText())
    
        def change(self, s):
            self.cb1.clear()
            if s == "坚果":
                self.cb1.addItem('夏威夷果')  # 添加单个控件
            elif s == "小球":
                self.cb1.addItem('红球')
                self.cb1.addItems(['绿球', '蓝球'])  # 一次添加多个控件
            elif s == "螺母":
                self.cb1.addItem("M12")
            else:
                self.cb1.addItem("请重选")
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        main = QComboBoxDemo()
        main.show()
        sys.exit(app.exec_())
    
    

    参考:
    https://baijiahao.baidu.com/s?id=1663472192312252851&wfr=spider&for=pc

  • 相关阅读:
    一个编译器的实现0
    《穿越计算机的迷雾》笔记
    C#WinForm应用程序实现自动填充网页上的用户名和密码并点击登录按钮
    一个编译器的实现2——从文法到LL(1)分析表的概念和算法
    使用百度地图API的例子
    过桥问题 Bridge and torch problem
    (译)跟媳妇解释面向对象设计
    批量照片缩小器展示多线程控件BackgroundWorker后台工作使用方法
    图解:邮件(消息)的加密解密和数字签名
    一个编译器的实现1——开篇
  • 原文地址:https://www.cnblogs.com/unixcs/p/14236046.html
Copyright © 2020-2023  润新知