Seite 1 von 1

QDialog Größe an Größe eines TableViews anpassen.

Verfasst: 25. Mai 2006 14:53
von BartSimpson
Hallo, ich habe ein QDialog, welche u.a. auch ein TableView enthält.
Wenn ich dem TV das Modell übergeben, werde die Rollbalkeb angezeigt, wenn die Tablle zu gross ist. Jetzt würde ich es aber gerne so haben, das denn der QDialog größer wird. Aber irgenwie bekommen ich nicht die größe raus, die der Dialig haben müsste, um alles ohne Balken anzeigen zu können.

Verfasst: 25. Mai 2006 15:04
von patrik08
QMainWindow => showMaximized();
oder dialog tabelle setMinimumSize(QSize(500, 524));

geht auf jedem fall in designer ui file....

Verfasst: 25. Mai 2006 15:15
von BartSimpson
So einfach geht das leider nicht!
Denn dann sieht das TableView extrem schei... aus.
Denn es darf nicht gößer sein als nötig.
Also muss man irgenwie rausbekommen wie viel Platz es genau benötigen würde. Und um diesen Faktor denn den Dialog vergrößern. Das ganze natürlich unter Berücksichtiugung der maximalen Bildschimbreite.(Aber das ist ja nicht das Problem). Da ja leider die Schrittweite des Balkens nicht die größe in Pixeln entspricht:(

Verfasst: 25. Mai 2006 15:36
von Esleborn
mmh nciht getestet, aber di eGörße bekommst du glaub ich über

Code: Alles auswählen

p_table->viewport ( )->size ( );

Verfasst: 25. Mai 2006 15:41
von BartSimpson
nee leider nicht. Denn der Viewport ist nur der gerade gezeigte Ausschnitt:(

Verfasst: 25. Mai 2006 16:05
von Esleborn
sry klar...

maximumViewportSize ( ) ?

Verfasst: 25. Mai 2006 16:18
von BartSimpson
nee das ist die Größe die für den Aktuellen Bereich abzüglich der eventuellen Laufbalken bleibt:(
Aber leider nicht die Größe des ganzen:(

Verfasst: 25. Mai 2006 17:47
von patrik08
Also die breite finden sollte theoretisch gehen... mit

int QTableView::columnViewportPosition ( int column ) const
Returns the x-coordinate in contents coordinates of the given column.

die differenz der erste und letzte hast du die summe...
wenn alles zu breit ist ... kann das item noch resize to contenent .. dann kommt der minimale platz halter....

Verfasst: 25. Mai 2006 20:11
von BartSimpson
Das ist gar nicht mal so doof:)
nach ein parr versuchen muss die Formel heissen:
columnViewportPosition(letzteSpalte)+...->columnWidth(letzteSpalte)