mouseClickEvent ist in ViewBoxCustom.py
und wird korrekt ausgelöst, wenn Sie auf die Szene klicken. ist in SPCanalyse.py
und ViewBoxCustom.py
importiert es nicht als würde das einen zyklischen Import machen. Ich weiß es can be done, aber ich möchte es vermeiden.Vermeiden Sie einen kreisförmigen Import, wenn ein Modul das Signal hat und ein anderer der Steckplatz und die Argumente müssen
Ausschnitt aus ViewBoxCustom
from SPCanalyse import MainWindow #This import should not exist
def mouseClickEvent(self, ev):
elif ev.button() == QtCore.Qt.LeftButton:
ev.accept()
# The following line does not work because MainWindow is **NOT** imported
MainWindow.compute_spc_map(ev.pos().x(), ev.pos().y())
Ausschnitt aus SPCanalyse
. SPCanalyse
Importe ViewBoxCustom
um Funktionen für den Zugriff auf und App-Funktionalität
from ViewBoxCustom import MultiRoiViewBox # MultiRoiViewBox contains mouseClickEvent
def compute_spc_map(self, x, y):
if not self.preprocessed_frames == None:
self.image = fj.get_correlation_map(y, x, self.preprocessed_frames)
Ich kann nur compute_spc_map
in ViewBoxCustom
platzieren erzeugen, weil preprocessed_frames
eine Variable erzeugt und verwendet in SPCanalyse
ich dachte, es könnte funktionieren die mouseClickEvent
in eine Verbindung mit compute_spc_map
in SPCanalyse
die folgenden in SPCanalyse
from ViewBoxCustom import MultiRoiViewBox
self.vb = MultiRoiViewBox(lockAspect=True,enableMenu=True)
self.vb.mouseClickEvent.connect(self.compute_spc_map)
tun
leider mouseClickEvent
hat kein Attribut ‚connect‘
Ist 'ViewBoxCustom' ein Child-Widget des' MainWIndow'? Es ist ein wenig verwirrend, da der 'ViewBoxCustom'-Code 'compute_spc_map' aufruft, als wäre es eine Klassenmethode, aber im' SPCanalyse'-Code (wo 'MainWindow' definiert ist) wird es als eine normale Instanzmethode angezeigt. Ich nehme an, 'MainWindow' ist eine Klasse und keine globale Variableninstanz der echten MainWindow-Klasse. –
Ja und MainWindow ist in der Tat eine Klasse – Frikster