Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Fonts in QTable

Empfohlene Antworten

Veröffentlicht

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.

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.

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.