Ich habe ein pyqt4-Setup mit einem benutzerdefinierten Widget als Element des Listwidgets. Ich habe zwei Schaltflächen in diesem benutzerdefinierten Widget, um es in der Liste nach oben oder unten zu verschieben, indem ich es nehme und es entweder 1 nach oben oder 1 nach unten einfüge.PYQT4 Inhalt des Listenelements verschwindet, wenn es wieder in die Liste eingefügt wird
Wenn es eingefügt wird, ist das Element immer noch hervorgehoben, aber der Inhalt ist verschwunden.
Hier ist, was das Element bewegt.
def ChangeInit(self, row, direction):
item = self.initiativeList.takeItem(row)
self.initiativeList.insertItem(row + direction, item)
row = die Reihe der Artikel ist in
Richtung = 1 oder -1, je nachdem, welche Taste gedrückt wird
Irgendwelche Ideen, warum das Element bewegt zu werden, erscheint aber der Inhalt nicht bewegt wird, damit oder zumindest nicht sichtbar?
Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.
Diese sollten ihre eigenen Objekte sein. Ich habe eine andere Funktion, die meine InitCreatureObject-Klasse verwendet, um ein Objekt zu erstellen, das es dann in der Liste einfügt. Ich kann versuchen, es einfach zu entfernen und ein neues einzufügen und zu sehen, ob das dann funktioniert. Scheint wie viel zusätzliche Verarbeitung, nur um es in der Liste nach oben oder unten zu verschieben. – Aaranos
Ja, es scheint mehr Arbeit als nötig zu sein. Eine andere Alternative wäre, ein separates Modell und eine separate Ansicht zu verwenden. Verwenden Sie eine 'QListView' und implementieren Sie Ihr eigenes Modell, indem Sie von' QAbstractListModel' erben. Dies erfordert einige Anstrengungen, aber wenn Sie mehr als ein einfaches Listen-Widget wünschen, kann es sich lohnen. – titusjan
Ich habe meinen Code optimiert, um ein neues Element zu erstellen, und fülle nur aus, was es benötigt, basierend auf dem alten Objekt, es ist keine schöne Lösung, aber es funktioniert. Ich werde mir die andere Empfehlung ansehen, die Sie hatten, wenn es mir immer noch Probleme bereitet. Vielen Dank. – Aaranos