kingmac2104 Geschrieben 27. September 2002 Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mephisto81 Geschrieben 29. September 2002 Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kingmac2104 Geschrieben 1. Oktober 2002 Autor Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.