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.