在pyqt中,用按钮控制画圆的示例代码,并能通过dial控件控制大小
时间: 2023-06-19 21:05:23 浏览: 74
下面是一个简单的示例代码,使用PyQt中的QPushButton和QDial控件创建一个窗口,通过按钮控制画圆,通过QDial控件控制圆的大小。
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QDial
from PyQt5.QtGui import QPainter, QColor
from PyQt5.QtCore import Qt
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 300)
self.setWindowTitle('Draw Circle')
self.button = QPushButton('Draw Circle', self)
self.button.move(100, 250)
self.button.clicked.connect(self.drawCircle)
self.dial = QDial(self)
self.dial.setGeometry(150, 150, 100, 100)
self.dial.setMaximum(100)
self.dial.setMinimum(1)
self.dial.setValue(50)
self.dial.valueChanged.connect(self.changeSize)
self.show()
def drawCircle(self):
qp = QPainter(self)
qp.setBrush(QColor(255, 0, 0))
qp.drawEllipse(100, 50, self.size, self.size)
def changeSize(self, value):
self.size = value
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
```
在这个例子中,我们创建了一个名为Example的QWidget对象。在initUI()方法中,我们创建了一个QPushButton和一个QDial控件,并将它们放置在窗口上,按钮的点击事件连接到了drawCircle()方法上,QDial的valueChanged事件连接到了changeSize()方法上。
在drawCircle()方法中,我们使用QPainter对象绘制了一个圆形,圆的大小由变量self.size控制。在changeSize()方法中,我们通过QDial的value参数改变了self.size的值。
执行这个代码,可以看到一个窗口,包含一个可以控制圆的大小的QDial控件和一个用于绘制圆的QPushButton控件。点击按钮,即可在窗口上绘制一个圆。通过QDial控件,可以控制圆的大小。