Veröffentlicht 27. September 200222 j 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.
29. September 200222 j 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.
1. Oktober 200222 j 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.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.