qpainterpath 平移(qpainter drawpie)

qpainterpath 平移(qpainter drawpie)nbsp 点击上方 机械电子工程技术 关注我们 在两个 GraphicsView 控件中 一个画圆形 一个画方形 通过两个按钮控制 from PyQt5 QtWidgets import QApplication QGraphicsSce QGraphicsVie QHBoxLayout QVBoxLayout QWidget QPushButton from

大家好,我是讯享网,很高兴认识大家。



 
点击上方“机械电子工程技术”关注我们










在两个GraphicsView控件中,一个画圆形,一个画方形,通过两个按钮控制
from PyQt5.QtWidgets import QApplication, QGraphicsScene, QGraphicsView, QHBoxLayout, QVBoxLayout, QWidget, QPushButtonfrom PyQt5.QtGui import QPainter, QPen, QColor

class GraphicsWidget(QWidget): def init(self): super().init_number”>_()
# 创建场景和视图1 self.scene1 = QGraphicsScene() self.view1 = QGraphicsView(self.scene1) self.circle_item1 = None
# 创建场景和视图2 self.scene2 = QGraphicsScene() self.view2 = QGraphicsView(self.scene2) self.rect_item1 = None
# 添加按钮 self.btn1 = QPushButton(‘画圆形’) self.btn2 = QPushButton(‘画方形’)
# 将按钮添加到垂直布局中 vlayout = QVBoxLayout() vlayout.addWidget(self.btn1) vlayout.addWidget(self.btn2)
# 使用水平布局将两个视图和按钮包装在一起 layout = QHBoxLayout() layout.addWidget(self.view1) layout.addWidget(self.view2) layout.addLayout(vlayout)
self.setLayout(layout)
self.btn1.clicked.connect(self.draw_circle) self.btn2.clicked.connect(self.draw_rect)
def draw_circle(self): if self.circle_item1 is not None: return
# 在场景1中添加红色圆形 self.circle_item1 = self.scene1.addEllipse(0, 0, 50, 50, QPen(QColor(“red”))) self.view1.setScene(self.scene1)
def draw_rect(self): if self.rect_item1 is not None: return
# 在场景2中添加蓝色矩形 self.rect_item1 = self.scene2.addRect(0, 0, 50, 50, QPen(QColor(“blue”))) self.view2.setScene(self.scene2)

if name_number”>_ == main: app = QApplication([]) widget = GraphicsWidget() widget.show() app.exec_()

讯享网
两个GraphicsView控件中分别显示打开的图片,点击按钮后弹出文件对话框选择图片,显示在GraphicsView控件中,是两个按钮,一个对应一个GraphicsView控件,图片显示要匹配控件大小
讯享网from PyQt5.QtGui import QPixmapfrom PyQt5.QtWidgets import QApplication, QMainWindow, QGraphicsView, QFileDialog, QGraphicsScene, QGraphicsPixmapItem, QVBoxLayout, QHBoxLayout, QWidget, QPushButton, QMessageBoximport sys
class MainWindow(QMainWindow): def init(self): super().init_number”>_()
# 初始化UI元素 self.setWindowTitle(“GraphicsView显示图片”) self.resize(800, 600)
# 添加两个GraphicsView控件 self.graphicsView1 = QGraphicsView() self.graphicsView2 = QGraphicsView()
# 添加两个PushButton按钮 btn1 = QPushButton(“选择图片1”, self) btn2 = QPushButton(“选择图片2”, self)
# 连接按钮的clicked信号到槽函数 btn1.clicked.connect(self.load_image_1) btn2.clicked.connect(self.load_image_2)
# 创建两个竖直布局器,并添加相应的控件 vbox1 = QVBoxLayout() vbox1.addWidget(self.graphicsView1) vbox1.addWidget(btn1)
vbox2 = QVBoxLayout() vbox2.addWidget(self.graphicsView2) vbox2.addWidget(btn2)
# 创建一个水平布局器 hbox = QHBoxLayout() hbox.addLayout(vbox1) hbox.addLayout(vbox2)
# 创建一个QWidget并将水平布局器设置为它的布局 widget = QWidget() widget.setLayout(hbox)
# 将QWidget设置为CentralWidget,使其成为主窗口的内容 self.setCentralWidget(widget)
def load_image_1(self): # 弹出文件对话框选择图片 file_name, _ = QFileDialog.getOpenFileName(self, “选择图片”, ””, .png;;.jpg;;.bmp”) if file_name: # 加载图像 pixmap = QPixmap(file_name)
# 调整图像大小以匹配GraphicsView控件 scene = QGraphicsScene() item = QGraphicsPixmapItem(pixmap.scaled(self.graphicsView1.size())) scene.addItem(item)
# 设置GraphicsView的Scene self.graphicsView1.setScene(scene)
def load_image_2(self): # 弹出文件对话框选择图片 file_name, _ = QFileDialog.getOpenFileName(self, “选择图片”, ””, “.png;;.jpg;;.bmp”) if file_name: # 加载图像 pixmap = QPixmap(file_name)
# 调整图像大小以匹配GraphicsView控件 scene = QGraphicsScene() item = QGraphicsPixmapItem(pixmap.scaled(self.graphicsView2.size())) scene.addItem(item)
# 设置GraphicsView的Scene self.graphicsView2.setScene(scene)

if name_number”>_ == main:

app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_())
       
讯享网

想了解更多

赶紧扫码关注

小讯
上一篇 2025-06-14 10:27
下一篇 2025-04-13 22:16

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/142747.html