QTableWidget - Ändern der Items

Verschiedenes zu Qt
Antworten
Querdenker
Beiträge: 99
Registriert: 1. Dezember 2005 17:44
Wohnort: Karlsruhe

QTableWidget - Ändern der Items

Beitrag von Querdenker »

Hi,

die QTableWidgetItems zeigen unbehandelt einen LineEdit an (klickt man auf die Zelle, kann man etwas eingeben). Zieht man die Spalten zusammen, so erscheint das Geschriebene mit den ellipsis (das sind drei ...) wenn der Text größer als die Spaltenbreite ist.
Wie kann man das abstellen und statt dessen einen Wordbreak erzwingen?
Ich habe schon eine Lösung dafür, aber die scheint mir etwas abenteuerlich. Ich denke, dass es einen einfacheren Weg gibt.

Meine derzeitige Lösung sieht so aus: Ich habe ein eigenes Delegate aus QItemDelegate und reimplementiere darin drawDisplay.

Code: Alles auswählen

void MyItem::drawDisplay(QPainter * painter, 
	                 const QStyleOptionViewItem & option, 
						  const QRect & rect, 
						  const QString & text ) const{
    int n = 0;
    QTableWidgetItem *wi = table->itemAt(rect.left(), rect.top());
    if(wi){
       painter->setFont(wi->font());
       painter->setPen(wi->textColor());
       n = wi->textAlignment(); 
    }
    QRectF f = painter->boundingRect(rect, Qt::TextWordWrap | n, text);
	 painter->drawText(f, text);						 
};
Mein Wunsch wäre das ohne das Delegate zu tun.
e Grüssle au
Q... ;)
Antworten