QTreeWidgetItem und QSyntaxHighlighter

Alles rund um die Programmierung mit Qt
Antworten
tom
Beiträge: 5
Registriert: 20. März 2007 20:54

QTreeWidgetItem und QSyntaxHighlighter

Beitrag 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
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Du mußt dir ein eigenes Delegate schreiben, welches das für dich erledigt.
tom
Beiträge: 5
Registriert: 20. März 2007 20:54

Beitrag von tom »

Sorry, da fehlt mir scheinbar etwas Grundlegendes. :oops:
Googeln hat mir leider nichts Verwertbares gebracht, hast Du irgendwo ein Beispiel?

Danke
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag 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()...
tom
Beiträge: 5
Registriert: 20. März 2007 20:54

Beitrag 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
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

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