Python pyqt6画圆并在圆里画线条
时间: 2024-11-12 22:46:44 浏览: 3
Python绘图画板程序 自由绘制 直线 矩形 椭圆 画笔调整 PyQt6
在Python中,使用PyQt6库可以方便地创建GUI应用程序,包括绘制图形。要在一个窗口里画一个圆并在这个圆内画一条线,你可以借助`QPainter`和`QGraphicsView`等组件。以下是一个简单的示例:
```python
from PyQt6.QtWidgets import QApplication, QWidget, QGraphicsView, QGraphicsScene, QGraphicsEllipseItem, QGraphicsLineItem
from PyQt6.QtGui import QPainter, QPen
class CircleAndLine(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
# 创建一个场景
scene = QGraphicsScene()
# 创建椭圆(圆)
circle = QGraphicsEllipseItem(0, 0, 50, 50) # x, y, 宽度, 高度
circle.setPen(QPen(Qt.black, 2)) # 设置边框颜色和宽度
scene.addItem(circle)
# 创建线条,并将其移动到圆内
line = QGraphicsLineItem(-25, -25, 25, 25) # 线条起点和终点坐标
line.setPen(QPen(Qt.red, 3)) # 设置线条颜色和宽度
line.setZValue(1) # 将线条置于圆之上以便可见
scene.addItem(line)
# 设置图形视图
view = QGraphicsView(scene)
view.setSceneRect(scene.sceneRect()) # 设置视口大小与场景一致
view.setAlignment(Qt.AlignCenter) # 居中显示
layout = QVBoxLayout(self)
layout.addWidget(view)
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication([])
ex = CircleAndLine()
ex.show()
app.exec_()
```
这个例子中,我们首先创建了一个`QGraphicsScene`,然后添加了一个黑色圆形(实际上是椭圆,因为默认是正圆)。接着,我们在圆内画了一条红色的直线。最后,将`QGraphicsView`绑定到场景上,在窗口中显示图形。
阅读全文