PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Qt] Spaltenbreite auf insgesamt 100% der Tabelle



Gartenzwerg
13-08-2004, 14:16
Hi,
ich möchte, das alle Spalten der QTable gleichmäßig gestreckt werden, so das die Tabellenbreite vollständig genutzt wird.
Ich dachte, der folgende Code würde dies bewirken, tut er aber nicht:


for(unsigned int i=0; i<numCols(); ++i)
{
setColumnWidth(i, width()/numCols());
}

Irgendwie bleiben die Spalten dabei zu klein. Wie kann ich das verändern?

Gartenzwerg

undefined
13-08-2004, 14:36
Ohne einen Listener oder Event wird das keinen geben ;)
Siehe resizeEvent() und resizePolicy()

Gartenzwerg
13-08-2004, 14:47
Sorry, aber aus deiner Antwort werde ich nicht ganz schlau.
Es ist ja nicht so, dass die Spaltenbreite sich nicht verändert, sie wird nur nicht weit genug gezogen, um die ganze Tabelle abzudecken.

Gartenzwerg

anda_skoa
13-08-2004, 17:02
Probier mal folgendes



int w = QMAX(visibleWidth(), contentsWidth());
int h = QMAX(visibleHeight(), contentsHeight());
resizeContents(w, h);


Ciao,
_

Gartenzwerg
13-08-2004, 17:17
Hi,
habe jetzt zum Testen zwei Spalten und die nehmen genau 2/3 der gesamten Tabelle ein. Das war schon bei meinem ersten Post so und nach Ergänzung des von anda_skoa geposteten Code ebenfalls. Wieso?

Gartenzwerg

anda_skoa
13-08-2004, 19:27
setColumnStretchable?

Ciao,
_

Gartenzwerg
14-08-2004, 17:26
Danke für den Hinweis, jetzt funktioniert es ordnungsgemäß. Ich frage mich bloß, warum es trotzdem ging, nur halt mit falschen Breiten? :confused:

Gartenzwerg