使用PyQt中的QCheckBox或QComboBox更改小部件可见性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用PyQt中的QCheckBox或QComboBox更改小部件可见性相关的知识,希望对你有一定的参考价值。

我试图使用QLineEditQCheckBox显示/隐藏QComboBox(或其他一些小部件)。

答案

您需要连接stateChanged信号(对于QCheckBox;每次检查/取消选中框时发出)或currentIndexChanged信号(对于QComboBox;每次在组合框中选择不同的项目时发出)连接到插槽(您也可以使用lambda在这里)。在那个插槽中你需要做的就是调用QLineEditshow()hide()方法来切换线编辑的可见性。

另一答案
from PyQt5 import Qt

class GUI(Qt.QWidget):     

    def __init__(self):
        super().__init__()

        layout = Qt.QVBoxLayout(self)        
        self.lineEdit = Qt.QLineEdit()
        self.lineEdit.setPlaceholderText("Hello Hossam Almasto")
        layout.addWidget(self.lineEdit)

        self.combo = Qt.QComboBox(self) #, activated = self.onChangeDir)
        self.combo.addItem("Test 1")
        self.combo.addItem("Test 2")
        layout.addWidget(self.combo)

        self.combo.activated[str].connect(self.onActivated)

    def onActivated(self, text):
        self.comboText = text        
        if self.comboText == "Test 2":
            self.lineEdit.hide()
        else:
            self.lineEdit.show()
            self.combo.setFocus()


if __name__ == '__main__':
    app = Qt.QApplication([])
    mw  = GUI()
    mw.show()
    app.exec()  

以上是关于使用PyQt中的QCheckBox或QComboBox更改小部件可见性的主要内容,如果未能解决你的问题,请参考以下文章

PyQt4 - QLineEdit() 和 QCheckbox()

PyQt5 控件学习(一个一个学习之QCheckBox)

pyqt4正确连接QCheckbox状态

使用 pyqt4 创建类信号

在 pyQt4 中 QCheckBox 的 clicked() 和 stateChanged() 信号有啥区别?

如何获取 PyQt 中 QGroupbox 中存在的 Qcheckbox 的状态