Mailinglist Archive: opensuse-programming-de (86 mails)

< Previous Next >
Re: QT3-Gridlayout
  • From: Thomas Wedehase <tw_mailbox@xxxxxxxxx>
  • Date: Tue, 15 Feb 2005 21:01:42 +0100
  • Message-id: <200502152102.02812.tw_mailbox@xxxxxxxxx>
Am Tuesday 15 February 2005 11:33 schrieb Stefan Hundhammer:
> On Monday 14 February 2005 22:07, Thomas Wedehase wrote:
> > Es wird auch alles soweit richtig angezeigt, bis auf mengeEdit und
> > einheitEdit. obwohl beide nur in einer Spalte sind und nameEdit in zwei
> > Spalten erscheinen alle 3 Felder ziemlich gleich lang.
> > Wie kann ich für die zwei erstgenannten Felder die minimale Länge oder
> > eine definierte Länge angeben??
>
> Du kannst für jede Spalte und auch für jede Zeile einen "Ausdehnungsfaktor"
> angeben - QGridLayout::setColStretch(). Spalten/Zeilen, die sich gar nicht
> ausdehnen sollen, bekommen hier einfach 0, andere einen höheren Wert. Der
> Wert gibt jeweils das Verhältnis an, wie überschüssiger Platz auf die
> jeweilige Spalte/Zeile verteilt werden soll. Wenn alle den Wert 1 bekommen,
> wird dieser Platz gleich verteilt.
>
> Die Doku sagt auch ganz klar, daß der Default zwar 0 ist, daß aber in genau
> diesem Fall (wenn alle den Faktor 0 haben) diese 0 schlicht ignoriert wird,
> weil ja überschüssiger Platz _irgendwo_ untergebracht werden muß.
>
>
> Eine andere - flexiblere - Möglichkeit ist es, für einzelne Widgets eine
> SizePolicy zu setzen. Dabei kann man für vertikal und horizontal jeweils
> angeben, ob sich ein Widget beliebig ausdehnen und/oder verkleinern darf,
> eine fixe Größe haben soll (die sich dann aus SizeHint() ergibt) oder
> vorzugsweise den SizeHint() berücksichtigen soll und sich dann ggf. noch
> ausdehnen darf. Siehe auch QWidget::setSizePolicy().
>
> > habe in der Doku schon geschaut, werde daraus aber nicht ganz schlau.
>
> Ja, das haben sie recht gut versteckt, die Trolls. ;-)
>
Hab es nach langem testen, doch noc geschafft das gewünschte Ergebnis zu
erreichen, jedoch auf einem anderen Weg:

gridArtikelTop->addWidget(sollKTW, 3, 6);
gridArtikelTop->setColStretch(1, 0);
gridArtikelTop->setColStretch(2, 5);

Es funktioniert, weiß aber nicht ob es die eleganteste Lösung ist.

Gruß, ebenfalls aus der Nordstadt.
Thomas

>
> Viele Grüße aus der (genauso verschneiten) Nordstadt Nürnbergs
> --
> Stefan Hundhammer <sh@xxxxxxx> Penguin by conviction.
> YaST2 Development
> SUSE Linux Products GmbH
> Nuernberg, Germany

--
Thomas Wedehase
Nuernberg, Germany
www.thomaswedehase.com
PGP-KEY: 0x3337F9AC

"The day Microsoft makes something that doesn't suck is probably
  the day they start making vacuum cleaners." -Ernst Jan Plugge
< Previous Next >