Seite 1 von 1

QTablewidget-> Pixmap an Größe der Zelle anpassen

Verfasst: 11. März 2010 11:27
von pixHub
Hallo,

wie kann ich ein Pixmap in eine Zelle des QTablewidgets laden und an die Größe anpassen?
Alle Versuche mit QPixmap::scaled oder die Änderung der Zellgröße schlagen fehl! -> keine Änderung: Das Pixmap wird zu klein dargestellt!

Danke für Eure Hilfe!

Verfasst: 11. März 2010 13:06
von pixHub
als Ergänzung:

das gleiches Problem in www.qtforum.org

http://www.qtforum.org/article/31844/qt ... post103357

scheinbar lassen sich Bilder in einer Tabellen-Zelle nicht anpassen.
Gibt es evtl. ein CellPadding oder - Margin ?

Verfasst: 11. März 2010 19:11
von upsala
Mit einem eigenen Delegate ist dies sehr wohl möglich.

Verfasst: 11. März 2010 20:58
von pixHub
ja, so was hab ich inzwischen gefunden:

http://www.qtforum.de/forum/viewtopic.p ... titem+font

ich hab mal vor Jahren was in Qt3 mit der QTable geschrieben, und wollte das jetzt umsetzen auf Qt4, eben ohne QT3Support ...
In QT3 hat man einfach ein Pixmap in die Tabellenzelle gelegt und konnte neben Werten auch noch auf einem einem Biild mit QPainter Text ausgeben. War eine relativ einfache überschaubare Sache!

Danke für den Tip! Muss ich mich mal reinlesen!

Verfasst: 15. April 2010 17:46
von skydiver
Hi

ich bin neu hier ;)

Dein Problem beschäftigt auch seit kurzem. Ich hab eine recht gute Teillösung gefunden.

Zuerst erstelle ich ein QLabel mit setCellWidget, dann greif ich über ein Cast Objekt darauf zu und benutze setPixmap um auf dem QLabel ein Bild zu platzieren.

Da das QLabel sich automatisch der Größe der Zelle anpasst, ist es möglich die Pixmap des Qlabels mit setScaledContents(true) auch an die Größe der Zelle anzupassen.
Leider wird dadurch das Seitenverhältnis nicht mehr gewahrt. Ich hab gelesen, dass es irgendwie möglich sein soll mit heightForWidth() ein festes Seitenverhältnis einzustellen.

Das eigentliche Problem ist, dass sich bei Änderungen des Qlabels, das Bild sich nicht automatisch mitskaliert. Ist das vielleicht mit QImage möglich?

Das was ich ich suche ist also eine Möglichkeit dem QLabel ein festes Seitenverhältnis zu geben, dass nicht mehr geändert werden kann.

Gruß