Frage

Ich habe eine QTreeView mit Daten, dass die Änderungen im Laufe der Zeit, mit einem datachanged Signal in der QAbstractItemModel jede Sekunde emittiert werden. Die Elemente in der QTreeView können auch bearbeitet werden, aber wenn ein Editor für ein bestimmtes Element geöffnet wird der Editor Zeichenfolge aktualisiert wird, während ich bearbeiten ist, was sehr ärgerlich ist. Jede Art und Weise einen Editor zu verhindern, mit den neuen Werten aktualisiert werden?

War es hilfreich?

Lösung

Haben Sie mit QTreeView Ihr eigenes Modell verwenden? In diesem Fall, dass Sie es überschreiben und keine Daten für Qt :: editrole zurückzukehren. Wenn es nicht bequem für Sie ist (Sie die aktuellen Daten im Feld haben, wenn Sie zu bearbeiten sie beginnen), dann könnten Sie Ihre eigene QItemDelegate / QStyledItemDelegate erstellen und einige benutzerdefinierte Logik umsetzen werden: machen es so, das Widget nicht aktualisiert wird mit neuem Wert, wenn es den Fokus hat, zum Beispiel.

Althought Ich könnte etwas fehlen, und es ist ein einfacher Weg, dies zu tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top