Seite 1 von 1
[Qt4] QTreeWidget, nur einzelne Spalten editieren
Verfasst: 18. Oktober 2005 07:47
von macman
Hallo,
in Qt3 gab es QListViewItem::setRenameEnabled(spalte, true). In Qt4 gibt es das nicht mehr, da kann man nur mittels Flag ein ganzes Item editierbar machen. Dann sind aber alle Spalten editierbar und das will ich nicht.
Hat jemand schon ne Lösung gefunden wie man das auf einzelne Spalten begrenzen kann?
Verfasst: 18. Oktober 2005 08:37
von FlorianBecker
Welches Widget benutzt du? Nach deiner Beschreibung QTableWidget.
Einfach den gesamten Inhalt auf nicht editierbar schalten und dann das jeweilige Item eben editierbar machen. Oder anders herum, alle einzelnen Items nicht editierbar machen und nur die in Ruhe lassen, die geändert werden können.
Eine bessere Lösung? Mit Qt4? Ich suche so oft nach besseren Lösungen dort, leider vergebens. Ich bin froh, falls überhaupt mal eine Lösung besteht.
Verfasst: 18. Oktober 2005 08:45
von macman
FlorianBecker hat geschrieben:Welches Widget benutzt du? Nach deiner Beschreibung QTableWidget.
QTreeWidget, steht auch im Titel

Mit QTable wäre es kein Problem, ich brauche aber die Baumdarstellung und es ist nur eine Konvertierung eines Qt3-Projekts. Ich will nicht alles neu schreiben, es hat sich so schon genug geändert. Vieles ist einfacher, verständlicher geworden, aber es fehlt auch noch vieles.
Verfasst: 18. Oktober 2005 08:55
von FlorianBecker
Aber ein QTreeWidget ist nicht editable wie ein QTableWidget. Das musst du explizit einbinden, damit es editable wird!?
Ja, ich habe das nicht gelesen. Ich werde alt.
Verfasst: 18. Oktober 2005 09:22
von macman
FlorianBecker hat geschrieben:Aber ein QTreeWidget ist nicht editable wie ein QTableWidget. Das musst du explizit einbinden, damit es editable wird!?
Ich hoffe das kommt noch. Wenn ich nämlich das editieren eines Items vom Programm aus anstoßen will, dann muß ich das dem QTreeWidget sagen (editItem(item, Spalte)) und nicht dem Item. Das es überhaupt editierbar ist, muß ich aber dem Item sagen. Da muß ich erst noch suchen, was ich da wo überschreiben muß, damit es geht.
FlorianBecker hat geschrieben:Ja, ich habe das nicht gelesen. Ich werde alt.
Gräme dich nicht, da bin ich schon

Einzelne Items in QTreeWidget editierbar machen
Verfasst: 27. Dezember 2007 15:02
von swalz
Basis ist QT-4.3.0. Ich habe alle entsprechenden
Items per setFlags(...) editierbar gemacht und löse die Editierbarkeit im Einzelnen über eine eigene Klasse, die von QItemDelegate erbt.
Soll ein Item editierbar sein, wird in der überschriebenen Methode
createEditor(...) der Default-Editor von QItemDelegate zurückgegeben. Soll
ein Item nicht editierbar sein, liefert meine Methode NULL zurück.