Hallo zusammen!
Ich habe folgendes (Py)Qt-Problem:
Mein MainWindow enthält ein TreeWidget und 2 PushButtons. Hinter den Buttons verbergen sich QSql-Abfragen, die Inhalte zusammensammeln und diese anschließend im TreeWidget anzeigen. Dazu leere ich jeweils das TreeWidget und fülle es anschließend mit den neuen Daten. Soweit funktioniert das auch problemlos. Wenn allerdings die Zahl der Items so groß wird, dass man im TreeWidget scrollen muss, führt das nächste Anklicken eines Buttons nach dem Scrollen zu einem Abbruch ohne richtige Fehlermeldung.
Einziger Anhaltspunkt bisher ist eine ACCESS_MEMORY_VIOLATION, die ich per Debugger erhalte. Abfangen konnte ich das bisher nicht.
Hat zufällig jemand irgendwelche Ideen, wonach ich mal suchen könnte?
Viele Grüße und Danke!
QTreeWidget: Abbruch nach dem Scrollen
Gibt es eine sinnvollere Meldung, wenn du python via gdb startest?
Denn python an sich sollte nicht so einfach segfaulten. Eher sind da Probleme in den Bindings (die ja kompiliertes c++ sind), und nicht vom python-interpreter gemanaged werden.
Code: Alles auswählen
gdb --args python myApplicaiotn.pyIch kann den Ablauf, der den Abbruch hervorruft nun genauer beschreiben. Der Test-Lauf mit gdb hat den Verdacht mit der Memory-Violation bestätigt.
Der Abbruch tritt immer dann auf, wenn ich auf einem Item mit Index x stehe und nach einem clear() das TreeWidget mit einer Anzahl an Items < x fülle. Bsp.: curItemIndex = 100 -> clear() -> Anzahl neuer Items 99 -> Abbruch
Ich bin bisher davon ausgegangen, dass clear() die Items nicht nur aus dem Widget entfernt, sondern auch die Anzahl der adressierbaren Items auf 0 setzt... Denkfehler?!
Der Abbruch tritt immer dann auf, wenn ich auf einem Item mit Index x stehe und nach einem clear() das TreeWidget mit einer Anzahl an Items < x fülle. Bsp.: curItemIndex = 100 -> clear() -> Anzahl neuer Items 99 -> Abbruch
Ich bin bisher davon ausgegangen, dass clear() die Items nicht nur aus dem Widget entfernt, sondern auch die Anzahl der adressierbaren Items auf 0 setzt... Denkfehler?!