使用PyQt中的QCheckBox或QComboBox更改小部件可见性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用PyQt中的QCheckBox或QComboBox更改小部件可见性相关的知识,希望对你有一定的参考价值。
我试图使用QLineEdit
或QCheckBox
显示/隐藏QComboBox
(或其他一些小部件)。
答案
您需要连接stateChanged
信号(对于QCheckBox
;每次检查/取消选中框时发出)或currentIndexChanged
信号(对于QComboBox
;每次在组合框中选择不同的项目时发出)连接到插槽(您也可以使用lambda
在这里)。在那个插槽中你需要做的就是调用QLineEdit
的show()
或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()