Как скрыть Qcheckbox, когда Qcombox box выбирает элемент? - PullRequest
0 голосов
/ 24 октября 2018
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 == "Да", запускает self.checkBox.hide (), но она не работает ...

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Используйте сигналы и слоты для этого.Захватите сигнал EditTextChanged в Combobox с помощью слота hideCheckBox.

comboBox.currentTextChanged.connect(func)

В функции func просто установите значение false в значении false, если текст «NO», и значение true, если текст «YES».

0 голосов
/ 24 октября 2018

Вы должны использовать сигнал currentTextChanged, который уведомляет вас, если выбор QComboBox был изменен, отправляя вам новый текст, тогда вы должны только сравнить его с текстом и вместе с методом setVisible() выполнить ваше требование.

self.comboBox.currentTextChanged.connect(lambda current_text: 
            self.checkBox.setVisible(current_text=="Yes"))
...