ich versuche schon seit einiger Zeit die in einem QTreeWidget enthaltenen QTreeWidgetItems zu formatieren. (Teile der dargestellten Strings sollen fett hervorgehoben werden)
Hierfür habe ich von der Klasse QItemDelegate eine Klasse abgeleitet und die Methoden
Code: Alles auswählen
QWidget * QItemDelegate::createEditor ( QWidget * parent, const QStyleOptionViewItem & option, const QModelIndex & index ) const
void QItemDelegate::setEditorData ( QWidget * editor, const QModelIndex & index ) const
void QItemDelegate::setModelData ( QWidget * editor, QAbstractItemModel * model, const QModelIndex & index ) const
void QItemDelegate::paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const
Um zu prüfen inwieweit die Methoden aufgerufen werden (der Debugger funktioniert komischerweise nicht bzw. die Haltepunkte werden ignoriert), habe ich an den Anfang der Funktionsrümpfe jeweils den folgenden Ausdruck gesetzt.
Code: Alles auswählen
std::cout << "\n Methode 'Methodenbezeichner' wurde aufgerufen" << std::endl;
Bis auf den entsprechenden Ausdruck im Konstruktor erfolgt im Ausgabefenster keine Ausgabe. Weshalb ich mal davon ausgehe dass die Methoden nicht durchlaufen worden sind.
Der "Startpunkt" meines Delegates befindet sich im folgenden Codefragment. Könnte ich hierbei etwas vergessen haben
Code: Alles auswählen
CTreeCompareWidget::CTreeCompareWidget(QWidget *parent)
: QTreeWidget(parent)
{
//...
CTreeWidgetDelegate delegate(0);
this->setItemDelegate(&delegate);Im Gegensatz zu meinem Vorhaben wird in der Dokumentation das benutzerdefinierte Delegate bzw. seine Methoden aufgrund einer Benutzereingabe aufgerufen. Bei mir sollen die Items jedoch bereits bei ihrer Erstellung formatiert werden, was die Sache ja eigentlich vereinfachen müsste. Das Problem scheint nun aber das Fehlen eines Einstiegspunktes für die Formatierung über den Delegate zu sein - oder sehe ich das falsch
Danke
Kai