QGraphicsView错误 - 尝试用Python显示jpg
我正在使用Python 3.2,配合Eric5和QTDesigner,想在QGraphicsView场景中显示一张jpg图片。运行以下代码时,第一次就出现了一个错误,提示无法打开文件。原因:[Errno 22] 无效的参数:,然后程序结束时又报了一个错误,提示调试程序引发了未处理的AttributeError,'MyForm'对象没有属性'QGraphicsView'。文件:,行:17
提到的screentest.ui文件只是一个简单的包含QGraphicsView对象的表单。
非常感谢任何建议。
#UIGraphicTest.py
import sys
# from PyQt4 import QtCore
from PyQt4 import QtGui
from screentest import Ui_MainWindow
class MyForm(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = MyForm()
grview = myapp.QGraphicsView()
scene = myapp.QGraphicsScene()
scene.addPixmap(QtGui.QPixmap('att-logo.jpg'))
grview.setScene(scene)
myapp.show()
sys.exit(app.exec_())
1 个回答
0
看起来我需要把我的场景移到类里面,然后引用QGraphicsView对象的名字。我还添加了在Windows上使用的ctypes。以下是可以正常工作的代码:
#UIGraphicTest.py
import sys, ctypes
#from PyQt4 import QtCore
from PyQt4 import QtGui
from screentest import Ui_MainWindow
class MyForm(QtGui.QMainWindow):
def __init__(self):
QtGui.QWidget.__init__(self)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
#Prevent grouping with python in Windows
myappid = 'UIGraphicTest'
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid)
# Create a Scene
self.scene = QtGui.QGraphicsScene()
self.scene.addPixmap(QtGui.QPixmap('logo.jpg'))
self.ui.graphicsView.setScene(self.scene)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myform = MyForm()
myform.show()
sys.exit(app.exec_())