Я использую Python 3.2 с Eric5 и QTDesigner, чтобы попытаться отобразить jpg в сцене QGraphicsView. Следующий код дает мне Файл не может быть открыт. Причина: [Errno 22] Недопустимый аргумент: " ошибки на первом проходе, а затем заканчивается Отлаженная программа подняла исключение, необработанное AttributeError Объект 'MyForm' не имеет атрибута 'QGraphicsView' Файл:, Line: 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_())
Похоже, мне нужно было переместить мою сцену в класс, а затем ссылаться на имя объекта QGraphicsView. Я также добавил ctypes для использования в Windows. Здесь рабочий код:
#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_())
.py
GUI? Вы должны были датьQGraphicsView
имя.