PyQt5 QComboBox控件(组合框控件,也称下拉框)使用

使用

定义:组合框QComboBox其实就是把一个编辑框和一个列表框组合到了一起。

组合框控件相当常见,例如,在Windows系统的控制面板上设置语言或位置时,有很多选项,用来进行选择的控件就是组合框控件。它为我们的日常操作提供了很多方便。

QComboBox 中addItem("")添加单个选项; addItems(列表)添加多个选项;

例如:下面实现省市级联效果如下

#QComboBox下拉列表控件使用,省市级联
from PyQt5.QtWidgets import  QPushButton,QVBoxLayout,QWidget,QApplication,QRadioButton,QHBoxLayout,QCheckBox,QGroupBox,QComboBox
from PyQt5.QtGui import QIcon,QPixmap
from PyQt5.QtCore import  Qt

import sys

class WindowClass(QWidget):

    def __init__(self,parent=None):
        self.citys = {"北京": ["北京"], "上海": ["上海"], "河北省": ["石家庄", "邯郸"]}
        super(WindowClass, self).__init__(parent)
        layout=QVBoxLayout()
        self.comboBox_1=QComboBox()
        self.comboBox_1.addItem("--请选择--")
        self.comboBox_1.addItem("北京")
        self.comboBox_1.addItem("上海")
        self.comboBox_1.addItem("河北省")
        self.comboBox_1.addItems(["湖南省","湖北省","天津"])

        self.comboBox_2 = QComboBox()
        self.comboBox_2.addItem("--请选择--")

        layout.addWidget(self.comboBox_1)
        layout.addWidget(self.comboBox_2)
        self.comboBox_1.currentIndexChanged.connect(self.btnState)

        self.setLayout(layout)
    def btnState(self):
        print("状态:",self.comboBox_1.currentText())
        # for count in range(self.comboBox_1.count()):
        #     print("列表选项:" ,self.comboBox_1.itemText(count),count)

        province=self.comboBox_1.currentText()
        print(province in  self.citys.keys())
        if province!="--请选择--":
            self.comboBox_2.clear()
            self.comboBox_2.addItems(self.citys[province] if   province in  self.citys.keys() else ["--请选择--"])
        else:
            self.comboBox_2.clear()
            self.comboBox_2.addItem("--请选择--")



if __name__=="__main__":
    app=QApplication(sys.argv)
    win=WindowClass()
    win.show()
    sys.exit(app.exec_())

 

 

效果图

你可能感兴趣的:(PyQt)