Seite 1 von 1

QTreeWidgetItem und QSyntaxHighlighter

Verfasst: 20. März 2007 21:05
von tom
Hallo Allerseits,

ich würde für eine Protokollanwendung sehr gerne eine formatierte Ausgabe in einem QTreeWidget unterbringen.

QTreeWidgetItem *headItem = new QTreeWidgetItem(treeWidget);
headItem->setText(0, headHighLighter->formatText(msgHead));
headItem->setExpanded(true);
QTreeWidgetItem *textItem = new QTreeWidgetItem(headItem);
textItem->setText(0, qsh->formatText(msgText));

Der Highlighter funktioniert, in einem QTextEdit kommt alles wie erwartet.

textEdit->append(headHighLighter->formatText(msgHead));
textEdit->append(qsh->formatText(msgText));

Ist das Formatieren in QTreeWidgetItems prinzipiell möglich, oder muss ich eine andere Baumdarstellung benutzen?
Wenn Ja, welche?

Danke für Eure Hilfe

Thomas

Verfasst: 21. März 2007 09:06
von upsala
Du mußt dir ein eigenes Delegate schreiben, welches das für dich erledigt.

Verfasst: 22. März 2007 20:48
von tom
Sorry, da fehlt mir scheinbar etwas Grundlegendes. :oops:
Googeln hat mir leider nichts Verwertbares gebracht, hast Du irgendwo ein Beispiel?

Danke

Verfasst: 22. März 2007 22:36
von upsala
http://doc.trolltech.com/4.2/itemviews- ... egate.html
Und statt der QSpinBox halt ein QTextEdit bzw. bei der paint-Funktion halt ein QTextDocument::drawContents()...

Verfasst: 25. März 2007 18:23
von tom
Danke für den Tip mit der SpinBox,
ich kämpfe weiter mit mit dem Thema, komme aber noch nicht so richtig vorwärts. Die Sache mit Model und Delegates muß ich mir wohl noch sehr intensiv reinpressen.

Vom Verständnis her habe ich erwartet, daß ich ein Delegate für das QTreeWidgetItem erstellen müsste, da ich ja hierfür die Ausgabefunktion verändern möchte, aber die setDelegate() Methode wird hierbei scheinbar nicht unterstützt.

Ich versuche weiter mein Glück ...

Thomas

Verfasst: 25. März 2007 18:40
von upsala

Code: Alles auswählen

void QAbstractItemView::setItemDelegate ( QAbstractItemDelegate * delegate ) 
void QAbstractItemView::setItemDelegateForColumn ( int column, QAbstractItemDelegate * delegate ) 
void QAbstractItemView::setItemDelegateForRow ( int row, QAbstractItemDelegate * delegate )