pyqt6勾选复选框,让输入框变成可输入状态
时间: 2024-11-06 14:23:49 浏览: 32
在PyQt6中,如果你想要控制一个QCheckBox(复选框)的状态并相应地改变其关联的QLineEdit(输入框)的交互性,你可以这样做:
首先,在你的UI设计或者信号槽连接中,给复选框添加一个状态变化的信号处理器,例如`stateChanged(int state)`。这个信号会在复选框的checked状态改变时触发。
```python
from PyQt6.QtWidgets import QApplication, QWidget, QCheckBox, QLineEdit
from PyQt6.QtCore import Qt
class YourWidget(QWidget):
def __init__(self):
super().__init__()
self.checkBox = QCheckBox("启用输入", self)
self.inputBox = QLineEdit(self)
self.checkBox.stateChanged.connect(self.enable_input)
def enable_input(self, state: int):
if state == Qt.Checked:
self.inputBox.setReadOnly(False) # 如果复选框选中,则允许输入
else:
self.inputBox.setReadOnly(True) # 否则,禁止输入
```
在这个例子中,当复选框被选中(`state == Qt.Checked`),`setReadOnly(False)`会解除`QLineEdit`的只读模式,使其变为可编辑;反之,如果复选框未被选中,则设置为只读。
阅读全文