[Qt4] QTreeWidget, nur einzelne Spalten editieren

Alles rund um die Programmierung mit Qt
Antworten
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

[Qt4] QTreeWidget, nur einzelne Spalten editieren

Beitrag 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?
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag 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.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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.
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag 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.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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 :-)
swalz
Beiträge: 1
Registriert: 27. Dezember 2007 10:39

Einzelne Items in QTreeWidget editierbar machen

Beitrag 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.
Antworten