mir eine GUI-Analyse-Software bin die Umsetzung, die eine QTreeWidget mit einem paar benutzerdefinierten TreeWidgetItem Klassen verwendet. Jedes Element in dem Baum ist mehr oder weniger für seine eigene Buchführung verantwortlich, indem es die mit ihm verbundenen Datensätze und Objekte verfolgt. Ich mag ein Signal aus den Funktionen der Gewohnheit QTreeWidgetItems emittieren zu können, aber die folgenden Code führt zu einem Fehler, dass myTWItem nicht auf eine QObject umgewandelt werden. Gibt es eine Möglichkeit, auf diese Weise ein Signal von einem QTreeWidgetItem zu senden?Alternativen zu emittieren ein Signal von einem QTreeWidgetItem SubClass PyQt/pyside
import sys
from PyQt5 import QtCore, QtWidgets, QtGui
class myTWItem(QtWidgets.QTreeWidgetItem):
childAdded = QtCore.pyqtSignal(object)
def addChild(self, child):
super(myTWItem, self).addChild(child)
self.childAdded.emit(child)
app = QtWidgets.QApplication(sys.argv)
tw = QtWidgets.QTreeWidget()
item = myTWItem()
tw.addTopLevelItem(item)
item.setText(0, "James")
child = QtWidgets.QTreeWidgetItem()
child.setText(0, "Braddock")
item.addChild(child)
tw.show()
sys.exit(app.exec_())
Ausgänge:
>>Traceback (most recent call last):
>> File "C:/Coding/Python/dataquick/sandbox/treewidgettest.py", line 22, in <module>
>> item.addChild(child)
>> File "C:/Coding/Python/dataquick/sandbox/treewidgettest.py", line 10, in addChild
>> self.childAdded.emit(child)
>>TypeError: myTWItem cannot be converted to PyQt5.QtCore.QObject in this context
>>
>>Process finished with exit code 1