在pyqt中,用按钮控制画圆的示例代码
时间: 2023-06-19 21:05:41 浏览: 131
以下是一个简单的示例代码,用于在PyQt界面中使用按钮控制画圆:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QPushButton
from PyQt5.QtGui import QPainter, QBrush, QPen
from PyQt5.QtCore import Qt
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.button = QPushButton('Draw Circle', self)
self.button.move(50, 50)
self.button.clicked.connect(self.draw_circle)
self.circle_drawn = False
def paintEvent(self, event):
if self.circle_drawn:
painter = QPainter(self)
painter.setPen(QPen(Qt.black, 5, Qt.SolidLine))
painter.setBrush(QBrush(Qt.blue, Qt.SolidPattern))
painter.drawEllipse(100, 100, 100, 100)
def draw_circle(self):
self.circle_drawn = True
self.update()
class MyMainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 300, 200)
self.setWindowTitle('Draw Circle')
self.widget = MyWidget()
self.setCentralWidget(self.widget)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyMainWindow()
window.show()
sys.exit(app.exec_())
```
此示例代码创建一个简单的PyQt窗口,其中包含一个按钮。按下按钮后,窗口将绘制一个蓝色圆形。注意,此示例代码的绘图代码位于 `MyWidget` 类的 `paintEvent` 方法中。在 `draw_circle` 方法中,我们设置了一个标志,表示应该绘制圆形。我们还调用了 `update` 方法,以便在 `paintEvent` 方法中重新绘制窗口并绘制圆形。
阅读全文