首页 > 解决方案 > Qcombox框选择项目时如何隐藏Qcheckbox?

问题描述

from PyQt5 import QtCore, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(762, 590)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")

        self.checkBox = QtWidgets.QCheckBox('box', self.centralwidget)
        self.checkBox.setGeometry(QtCore.QRect(150, 75, 181, 20))
        self.checkBox.setObjectName("checkBox")


        self.comboBox = QtWidgets.QComboBox(self.centralwidget)
        self.comboBox.setGeometry(QtCore.QRect(150,160,100,20))
        self.comboBox.addItem("Yes")
        self.comboBox.addItem("No")
        self.comboBox.setObjectName("comboBox")



        MainWindow.setCentralWidget(self.centralwidget)
        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "11"))

        MainWindow.show()

if __name__ == "__main__":
    import sys

    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

我创建了一个带有“是”和“否”的组合框,当我在组合框中选择“否”时,我想隐藏复选框,有人可以帮忙吗?

我试图创建一个函数,当 self.comboBox.currentText == "Yes" 时,运行 self.checkBox.hide(),但它没有工作......

标签: pythonpyqtpyqt5qcomboboxqcheckbox

解决方案


如果选择已更改,您必须使用currentTextChanged通知您的信号向您发送新文本,那么您应该只将其与文本进行比较,并与方法一起满足您的要求。QComboBoxsetVisible()

    self.comboBox.currentTextChanged.connect(self.handle_current_text_changed)

def handle_current_text_changed(self, text):
    self.checkBox.setVisible(text == "Yes")

推荐阅读