pyqt5 checkbox 限选3个
时间: 2023-07-31 19:12:04 浏览: 159
Pyqt5 QTableWidget/QTableView 行表头添加复选框全选功能
5星 · 资源好评率100%
您可以使用PyQt5中的QCheckBox来实现限选3个的功能。以下是一个简单的示例代码:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QCheckBox, QMessageBox
from PyQt5.QtCore import Qt
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("限选3个Checkbox")
self.layout = QVBoxLayout()
self.checkboxes = []
self.initUI()
def initUI(self):
for i in range(1, 6):
checkbox = QCheckBox(f"Checkbox {i}")
checkbox.stateChanged.connect(self.checkboxStateChanged)
self.layout.addWidget(checkbox)
self.checkboxes.append(checkbox)
def checkboxStateChanged(self):
selected_count = sum(checkbox.isChecked() for checkbox in self.checkboxes)
if selected_count > 3:
QMessageBox.warning(self, "警告", "最多只能选择3个Checkbox!")
sender = self.sender()
sender.setChecked(False)
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
在这个示例中,我们创建了一个继承自QWidget的MainWindow类,用于显示复选框。在initUI方法中,我们创建了5个复选框,并将它们添加到垂直布局中。每个复选框的状态变化都会触发checkboxStateChanged方法。在该方法中,我们计算已选中的复选框数量,并在超过3个时弹出警告对话框,同时取消最新选中的复选框。
您可以根据需要修改复选框的数量和其他样式。希望这个示例能对您有所帮助!
阅读全文