Ich habe eine QGraphicsView im QtDesigner erstellt. Jetzt möchte ich ein mouseMoveEvent damit verbinden. Ich verstehe, dass ich eine neue Klasse definieren muss, die von QGraphicsView erbt und in der mouseMoveEvent überschrieben wird. Here ist eine ziemlich gute Erklärung, wie man das macht.Verbinden Sie mouseMoveEvent mit dem Widget, indem Sie eine Unterklasse erstellen
Also habe ich meine QGraphicsView-Instanz in QtDesigner auf die neue Klasse floorplanView hochgestuft. Ich mag diese Klasse in meiner Haupt-Python-Datei main.py definieren, wie es in dem anderen Beispiel getan wird:
import QtGui
class floorplanViewClass(QtGui.QGraphicsView):
moved = pyqtSignal(QMouseEvent)
def __init__(self, parent = None):
super(MyView, self).__init__(parent)
def mouseMoveEvent(self, event):
super(MyView, self).mouseMoveEvent(event)
print "Mouse Pointer is currently hovering at: ", event.pos()
self.moved.emit(event)
Meine erste Frage: Was muß ich in der Header-Datei Feld eingeben? Sowohl main.h und nur Haupt geben Sie mir:
File "<stdin>", line 1, in <module>
File "C:\Anaconda2\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 699, in runfile
execfile(filename, namespace)
File "C:\Anaconda2\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 74, in execfile
exec(compile(scripttext, filename, 'exec'), glob, loc)
File "C:/Users/Oliver/Desktop/pyqt/DRS.py", line 23, in <module>
Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)
File "C:\Anaconda2\lib\site-packages\PyQt4\uic\__init__.py", line 211, in loadUiType
exec(code_string.getvalue(), ui_globals)
File "<string>", line 1317, in <module>
File "DRS.py", line 23, in <module>
Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)
File "C:\Anaconda2\lib\site-packages\PyQt4\uic\__init__.py", line 211, in loadUiType
exec(code_string.getvalue(), ui_globals)
File "<string>", line 1317, in <module>
ImportError: cannot import name floorplanViewClass
PyQt ist Version 4.