在组合框pyqt中选择特定选项时隐藏标签

时间:2018-10-12 06:57:55

标签: python pyqt

我有一个带有多个选项的组合框,我想在选择特定选项时显示标签,并在选择其他选项时隐藏标签。我想在用户在组合框中选择选项后立即实现。我尝试使用currentindexchanged()做到这一点,但它适用于所有选项。

例如,如果我选择选项1,则应显示标签,而当我选择选项2时,该标签应消失。

请帮助我实现这一目标。

1 个答案:

答案 0 :(得分:0)

# -*- coding: utf-8 -*-
import sys
import os

from PySide2 import QtCore, QtGui, QtWidgets

class MainWindow(QtWidgets.QWidget):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.__ui__()

    def __ui__(self):
        layout_parent = QtWidgets.QVBoxLayout()
        data_list = ["option1", "option2", "option3", "option4", "option5", "option6"]
        self.comboBox = QtWidgets.QComboBox()
        self.comboBox.addItems(data_list)
        self.comboBox.currentIndexChanged.connect(self.currentIndexChanged)
        self.label = QtWidgets.QLabel("Hello World!")
        layout_parent.addWidget(self.comboBox)
        layout_parent.addWidget(self.label)
        self.setLayout(layout_parent)

    def currentIndexChanged(self, index):
        if self.comboBox.itemText(index) == "option1":
            self.label.show()
        else:
            self.label.hide()

if __name__=='__main__':
    app = QtWidgets.QApplication(sys.argv)
    mainWin = MainWindow()
    mainWin.show()
    sys.exit(app.exec_())