用Qcheckbox实现Qcheckbox勾选时显示widget,取消勾选时widget隐藏
时间: 2024-06-10 11:06:09 浏览: 142
可以通过绑定QCheckBox的stateChanged()信号,然后根据其checked状态来显示或隐藏相应的widget。
具体的实现步骤如下:
1. 创建一个QCheckBox和需要显示/隐藏的widget。
2. 对QCheckBox的stateChanged()信号进行绑定,当状态发生变化时调用相应的槽函数。
3. 在槽函数中,根据QCheckBox的checked状态,设置widget的visible属性即可。
下面是一个示例代码:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox, QLabel, QVBoxLayout
import sys
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('QCheckbox')
self.cb = QCheckBox('显示/隐藏label')
self.cb.stateChanged.connect(self.showOrHideLabel)
self.label = QLabel('这是一个label')
self.label.setVisible(False)
vbox = QVBoxLayout(self)
vbox.addWidget(self.cb)
vbox.addWidget(self.label)
vbox.addStretch(1)
def showOrHideLabel(self, state):
if state == Qt.Checked:
self.label.setVisible(True)
else:
self.label.setVisible(False)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec())
```
在这个示例代码中,当QCheckBox被勾选时,label就会显示出来;当取消勾选时,label就会隐藏。
阅读全文