Ich habe versucht, einen Weg zu finden, um den GUI-Thread von einem Python-Thread außerhalb von Main zu aktualisieren. Die PyQt5 docs on sourceforge haben gute Anweisungen, wie dies zu tun ist. Aber ich kann immer noch nicht alles zum Laufen bringen.PyQt5 Signale und Slots 'QObject hat kein Attribut' Fehler
Gibt es eine gute Möglichkeit, die folgende Ausgabe von einer interaktiven Sitzung zu erklären? Sollte es nicht möglich sein, die emit-Methode für diese Objekte aufzurufen?
>>> from PyQt5.QtCore import QObject, pyqtSignal
>>> obj = QObject()
>>> sig = pyqtSignal()
>>> obj.emit(sig)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'QObject' object has no attribute 'emit'
und
>>> obj.sig.emit()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'QObject' object has no attribute 'sig'
und
>>> obj.sig = pyqtSignal()
>>> obj.sig.emit()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'PyQt5.QtCore.pyqtSignal' object has no attribute 'emit'
gleiche wie hier: [PyQt5 in welchem Modul wird die emit Methode gefunden?] (Http://stackoverflow.com/questions/17581506/pyqt5-in-what-module-is-the-emit-method -found) - nur __bound__ Signale haben eine 'emit' Methode. ('obj.sig = pyqtSignal()' ist immer noch ein ungebundenes Signal) – mata
@mata: Ja, ich nahm diese Beispiele aus den PyQt5-Dokumenten bei sourceforge. Wie Sie [hingewiesen] (http://stackoverflow.com/questions/17581506/pyfqt5-in-what-module-is-the-emit-method-found), ist die Emit-Methode für ein gebundenes Signal, dh es ist ein Mitglied einer Klasse, die von QObject erbt. Ich habe nicht bemerkt, dass ich das in der oben eingefügten interaktiven Sitzung nicht gemacht habe. – ADB
@ mata: Nur neugierig, was wäre der Nutzen von ** obj.sig = pyqtSignal() **, wie im dritten Beispiel oben? – ADB