pyqt combobox

import sys
from PyQt5.QtWidgets import QApplication, QComboBox, QWidget, QVBoxLayout, QHBoxLayout, QLabel, QMessageBox
from PyQt5.QtGui import QPixmap, QIcon


class ExComboBox(QWidget):
    '''
    下拉框简单举例
    '''

    def __init__(self):
        '''
        一些初始设置
        '''
        super().__init__()
        self.init_ui()

    def init_ui(self):
        '''
        界面初始设置
        '''
        self.resize(400, 100)
        self.setWindowTitle("微信公众号--下拉框1")
        self.show()

        label1 = QLabel("你可以选择", self)
        combox = QComboBox(self)
        label2 = QLabel("大家静一静,", self)
        self.label3 = QLabel("        ", self)

        hlayout1 = QHBoxLayout()
        hlayout1.addStretch(1)
        hlayout1.addWidget(label1)
        hlayout1.addStretch(1)
        hlayout1.addWidget(combox)
        hlayout1.addStretch(1)

        hlayout2 = QHBoxLayout()
        hlayout2.addStretch(1)
        hlayout2.addWidget(label2)
        hlayout2.addStretch(1)
        hlayout2.addWidget(self.label3)
        hlayout2.addStretch(1)

        vlayout = QVBoxLayout()
        vlayout.addLayout(hlayout1)
        vlayout.addLayout(hlayout2)

        self.setLayout(vlayout)

        infomation = ["我想静静", "我要开始学习了", "我要开始睡觉了", "我要开始装B了"]

        combox.addItems(infomation)
        # 使用addItems()函数将列表数据放入

        self.label3.setText(combox.currentText())
        # 将label3的文本设置为当前选项的值
        # currentText()属性保存当前文本。
        # 如果下拉框是可编辑的,则当前文本是下拉框中显示的值。否则,如果下拉框为空或未设置当前项目,则为当前项目的值或空字符串。

        combox.activated[str].connect(self.zhuangB)
        # 这个信号会把选中的值(字符串)传递给槽函数zhuangB()

    def zhuangB(self, text):
        '''
        一个装B功能
        '''
        self.label3.setText(text)
        if text == "我要开始装B了":
            msgBox = QMessageBox(QMessageBox.NoIcon, '装B', "让你装B")
            msgBox.setIconPixmap(QPixmap("./res/zhuangB.png"))
            msgBox.setWindowIcon(QIcon("./res/latin_b.png"))
            msgBox.exec()
            # 当我们选择“我要开始装B了”,就会弹出相应的对话框


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = ExComboBox()
    sys.exit(app.exec_())
上一篇:pyqt样式表语法笔记(中)


下一篇:如何调用另一个包中的Application