kingmac2104 Geschrieben 27. September 2002 Geschrieben 27. September 2002 Hi, weiss hier irgendjemand, wie ich fuer verschiedende Items in einer Qtable unter Qt eigene Schriftarten zuweisen kann? qtable->setfont(qfont) bezieht sich ja nur auf die ganze Tabelle, nicht nur auf ein Icon. Mein Ziel ist es, je nach Inhalt einzelner Items den Text entweder anders zu faerben oder durchzustreichen. Ich hab auch schon versucht, Qlabels, QLineedits und QMultilieedits einzufuegen, denn diese Widgets stellen setfont() zur verfuegung, aber dann hab ich probleme mit der Groessenanpassung der Zeile und des dargestellten inhalts. Also entweder muss ich den Font fuer das Item selbst setzen, oder die Groessenanpassung der Zeilen schaffen. Die widgets duerfen nicht breiter werden, und nur so hoch, wie es der inhalt benoetigt. Ausserdem ist auf diesem Weg keine Selection in der Zeile mehr moeglich. Bitte helft mir.
Mephisto81 Geschrieben 29. September 2002 Geschrieben 29. September 2002 sieh dir mal in der QT-Doku die virtuelle Funktion "paintCell(...)" genauer an. Dann sollte sich dein Problem eigentlich erledigt haben . Oder du leitest dir eine eigene Klasse von QTableItem ab. Damit habe ich es zumindest schonmal hinbekommen Items zu färben.
kingmac2104 Geschrieben 1. Oktober 2002 Autor Geschrieben 1. Oktober 2002 Danke, hab das ganze schon probiert. Hab da aber ein kleines Problem: Paintcell laesst sich irgendwie nicht auf ein Item beziehen. Er kennt in diesem Fall das Item nicht als Widget oder PaintDevice. Das heisst, ich kann den Inhalt zwar schon rauslesen, kann aber nichts in das Item einfuegen. Er setzt das gabze nur in Bezug zum Table und malt mir alles in die obere linke Ecke davon. Danach verdeckt er es wieder mit den Cells oder Items. Selbst setViewPort hilft hier auch nicht viel. Er zeichnet es dann dort hin, wo er soll, verdeckt es aber wieder mit den Items, da diese "eine Schicht hoeher" liegen. Qtable->item()->paint bewirkt das gleiche. Eine andere Moeglichkeit, die ich in der Online-Doku gefunden habe, ist diese: QPixmap mypix(breite,hoehe); // breite hoehe von Item! QPainter mypainter; mypainter.begin(mypix,tableitem()); Dadurch ist der Inhalt des Items in mypix gespeichert. Wenn man jetzt die Hintergrundfarbe mit der neuen austauscht und das Pixmap als Hintergrund fuer das Item nimmt, hat man den selben Effekt. Einziger Nachteil: Die Table ist dann ReadOnly. Ich werds mal mit einer KlassenAbleitung probieren. Danke, Ciao.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden