[gelöst] QTable Zellen farbig

Alles rund um die Programmierung mit Qt
Antworten
jaegermeister
Beiträge: 70
Registriert: 11. August 2004 07:44
Wohnort: Bergen auf Rügen
Kontaktdaten:

[gelöst] QTable Zellen farbig

Beitrag 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
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:

Beitrag 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
Wie könnten ja wenn wir wollten, aber wie wollen ja nicht.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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 :)
jaegermeister
Beiträge: 70
Registriert: 11. August 2004 07:44
Wohnort: Bergen auf Rügen
Kontaktdaten:

Beitrag 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
Wie könnten ja wenn wir wollten, aber wie wollen ja nicht.
Notwist
Beiträge: 85
Registriert: 2. März 2005 14:24

Beitrag 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.
Gruß, Notwist
Antworten