Seite 1 von 1
[gelöst] QTable Zellen farbig
Verfasst: 29. Juni 2005 10:54
von jaegermeister
Hi
Ich hab eine Klasse von QTable abgeleitet. Wenn man in eine Zelle der 2. Spalte klickt, wird ein QColorDialog aufgerufen. Mit der Farbe die dort ausgewählt wird soll dann die Zelle ausgefüllt werden.
Ich versuche die paintCell Methode zu überschreiben, aber bis jetzt hab ich noch nicht den gewünschte Erfolgt.
mfg jaegermeister
Verfasst: 29. Juni 2005 14:52
von jaegermeister
Lösung:
Ich hab mir die Farbe genommen damit ein Pixmap bemalt, und das Pixmap dann in die Zelle geklatscht. Das funzt und ich bin hier ewig an versuchen ^^
mfg jaegermeister
Verfasst: 29. Juni 2005 15:07
von macman
jaegermeister hat geschrieben:Lösung:
Ich hab mir die Farbe genommen damit ein Pixmap bemalt, und das Pixmap dann in die Zelle geklatscht. Das funzt und ich bin hier ewig an versuchen ^^
mfg jaegermeister
Aua, schreibst Du auch in die Zelle oder soll es nur bunt sein? Ich habe noch nichts mit QTable gemacht, aber besteht eine Table nicht aus QTableItems? Und die paint-Methode überschreibt man einfach:
Aus der Doku:
Code: Alles auswählen
void TableItem::paint( QPainter *p, const QColorGroup &cg, const QRect &cr, bool selected )
{
QColorGroup g( cg );
// last row is the sum row - we want to make it more visible by
// using a red background
if ( row() == table()->numRows() - 1 )
g.setColor( QColorGroup::Base, red );
QTableItem::paint( p, g, cr, selected );
}
Wie gesagt, habe selbst noch nichts mit gemacht, sieht aber nicht so schwer aus

Verfasst: 29. Juni 2005 15:50
von jaegermeister
Es ist auch sehr einfach, ich hab die Funktion einfach nicht gesehen. Manchmal sieht man den Wald vor lauter Bäumen nicht =)
Code: Alles auswählen
myColor = QColorDialog::getColor(); //die Farbe aus dem Dialog
myPixmap.resize( nW, nH );
myPixmap.fill(myColor);
setPixmap(aRow, aCol, myPixmap); //Pixmap an der Stelle in die Tabelle eingefügt
man sollte sich nicht immer an die erste Funktion die irgendwie gut aus sieht klammern
mfg jaegermeister
Verfasst: 30. Juni 2005 13:09
von Notwist
Aber dann kannst Du nichts mehr in die Tabelle schreiben, oder (weil verdeckt durch Pixmap)? Interessant wäre es ja, um diverse Tabellen-Einträge hervorzuheben oder kann man die Pixmap transparent machen? Hatte nämlich auch mal danach gesucht und nichts direkt gefunden, obwohl ich dachte, dass es bestimmt ne Standardfunktion ist.