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
[gelöst] QTable Zellen farbig
-
jaegermeister
- Beiträge: 70
- Registriert: 11. August 2004 07:44
- Wohnort: Bergen auf Rügen
- Kontaktdaten:
[gelöst] QTable Zellen farbig
Wie könnten ja wenn wir wollten, aber wie wollen ja nicht.
-
jaegermeister
- Beiträge: 70
- Registriert: 11. August 2004 07:44
- Wohnort: Bergen auf Rügen
- Kontaktdaten:
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: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
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 );
}
-
jaegermeister
- Beiträge: 70
- Registriert: 11. August 2004 07:44
- Wohnort: Bergen auf Rügen
- Kontaktdaten:
Es ist auch sehr einfach, ich hab die Funktion einfach nicht gesehen. Manchmal sieht man den Wald vor lauter Bäumen nicht =)
man sollte sich nicht immer an die erste Funktion die irgendwie gut aus sieht klammern
mfg jaegermeister
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 mfg jaegermeister
Wie könnten ja wenn wir wollten, aber wie wollen ja nicht.
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.
Gruß, Notwist
Code: Alles auswählen
Neo