我要把图像放到QGraphicsView上。但我在动态添加时遇到了一些困难。我从test.ui加载QGraphicsView本身。该窗口具有按钮(id打开)和QGraphicsView本身(id gv)。程序在运行时崩溃了
self.scene.setSceneRect (0, 0, 400, 400)
也就是说,程序启动。按钮起作用了。但是在选择一个图像之后,它崩溃了。我不知道这是什么意思,但也许它会有用:
Process finished with exit code -1073740791 (0xC0000409)
代码如下:
import sys
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5 import uic
from PyQt5 import QtWidgets
class MyWin(QtWidgets.QMainWindow):
def __init__(self):
QtWidgets.QMainWindow.__init__(self)
uic.loadUi("test.ui", self)
self.open.clicked.connect(self.load)
def load(self):
file_name, _ = QFileDialog.getOpenFileName(
self, 'Open file', '.', 'Image Files (*.png *.jpg *.bmp)')
if not file_name:
return
self.image_qt = QImage(file_name)
pic = QGraphicsPixmapItem()
pic.setPixmap(QPixmap.fromImage(self.image_qt))
self.scene.setSceneRect(0, 0, 400, 400)
self.orig_gv.scene.addItem(pic)
if __name__ == '__main__':
app = QApplication(sys.argv)
dlgMain = MyWin()
dlgMain.show()
sys.exit(app.exec_())
下面是test.ui:
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="open">
<property name="text">
<string>open</string>
</property>
</widget>
</item>
<item>
<widget class="QGraphicsView" name="gv"/>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>
转载请注明出处:http://www.resmedchina.com/article/20230526/1948213.html