添加QCheckBox控制QPainter绘制界面的显隐性
时间: 2023-12-10 20:38:20 浏览: 44
可以通过以下步骤添加 QCheckBox 控制 QPainter 绘制界面的显隐性:
1. 在 Qt Designer 中将 QCheckBox 添加到界面中,并设置合适的文本和名称。
2. 在代码中获取该 QCheckBox 对象,并连接到相应的槽函数。
3. 在槽函数中根据 QCheckBox 的选中状态来控制 QPainter 的绘制。
以下是一个简单的示例代码:
```python
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPainter, QColor
from PyQt5.QtWidgets import QApplication, QMainWindow, QCheckBox
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 添加 QCheckBox 控件
self.checkbox = QCheckBox('绘制矩形', self)
self.checkbox.move(10, 10)
self.checkbox.stateChanged.connect(self.on_state_changed)
def paintEvent(self, event):
painter = QPainter(self)
painter.setRenderHint(QPainter.Antialiasing)
# 根据 QCheckBox 的选中状态绘制矩形
if self.checkbox.isChecked():
painter.fillRect(50, 50, 100, 100, QColor(255, 0, 0))
def on_state_changed(self, state):
# 重新绘制界面
self.update()
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
在上面的代码中,首先在 `__init__` 方法中添加了一个 QCheckBox 控件,并将其连接到 `on_state_changed` 槽函数。在 `paintEvent` 方法中根据 QCheckBox 的选中状态绘制矩形。当 QCheckBox 的状态发生变化时,调用 `on_state_changed` 方法重新绘制界面。