Layout a espansione automatica con Qt-Designer


217

Sto usando Qt Designer.

Voglio crearne uno QVBoxLayoutche si espanderà automaticamente per riempire l'intera finestra.

La disposizione dei QVBoxLayoutresti fissa.

Come posso causare l' QVBoxLayoutespansione e riempire l'intera finestra attraverso il designer?


Se si desidera solo per il layout uset in Qt Designer, si prega di ref a urlare punte: stackoverflow.com/questions/1508939/qt-layout-on-qmainwindow

Risposte:


366

Dopo aver creato la QVBoxLayoutfinestra di progettazione in Qt, fare clic con il pulsante destro del mouse sullo sfondo del widget / finestra di dialogo / finestra (non il QVBoxLayoutwidget principale, ma) e selezionare Layout -> Layout in una griglia nella parte inferiore del menu di scelta rapida. L' QVBoxLayoutora dovrebbe allungare per adattarsi alla finestra e ridimensiona automaticamente quando l'intera finestra viene ridimensionata.


6
Grazie, ho cercato anche una soluzione a questo problema.
Simon H.

35
In realtà, non è necessario creare il layout della griglia. Invece di creare un QVBoxLayout, deseleziona tutti gli elementi e fai clic sullo sfondo del widget. Quindi selezionare Lay Out -> Lay Out verticalmente.
Michal Kottman,

3
@Michal Kottman: funziona solo in fase di progettazione. Non cambierà il layout quando l'utente ridimensiona la finestra in fase di esecuzione.
Jay,

5
Sia la griglia che il layout verticale funzionano per me in fase di progettazione e runtime.
AndiDog,

2
Vorrei aggiungere un piccolo dettaglio: se si desidera aggiungere un layout auto-allungante a una pagina QTabWidget , in realtà non è possibile fare clic con il pulsante destro del mouse sullo sfondo della pagina, poiché si selezionerebbe QTabWidget e non la scheda pertinente. Devi fare clic con il pulsante destro del mouse sull'etichetta della scheda come mostrato nella finestra di progettazione, quindi selezionare Layout -> Layout in una griglia
Emanuele Cipolla,

15

Secondo la documentazione , è necessario un set di layout di livello superiore.

È necessario un layout di livello superiore per garantire che i widget vengano ridimensionati correttamente quando viene ridimensionata la finestra. Per verificare se hai impostato un layout di livello superiore, visualizza l'anteprima del widget e prova a ridimensionare la finestra trascinando il grip dimensioni.

Puoi impostarne uno deselezionando la selezione e facendo clic con il pulsante destro del mouse sul modulo stesso e scegliendo uno dei layout disponibili nel menu di scelta rapida.

Layout Qt


2

Ho provato a trovare una proprietà "adatta allo schermo" ma non esiste.

Ma l'impostazione di "dimensione massima" del widget su un "numero elevato" (come 2000 x 2000) si adatterà automaticamente allo spazio del widget principale.


6
Cosa succede con questa tecnica su un MacBook Pro con display Retina (2880x1800)?
ta.speot.is

1
Basta impostarlo sul numero massimo che accetterà (che Designer mi mostra è 16777215) e dovrebbe funzionare su qualsiasi dimensione di monitor.
andreb,

0

Dopo aver aggiunto il layout con almeno un widget, seleziona la finestra e fai clic sul pulsante "Aggiorna" di QtDesigner. L'interfaccia verrà ridimensionata alla dimensione più ottimizzata e il layout si adatterà all'intera finestra. Quindi, quando si ridimensiona la finestra, il layout verrà ridimensionato allo stesso modo.


Cito che quando l'utente ridimensiona l'intera finestra, il layout verticale (e quindi il suo contenuto) si allungherà per adattarlo. Non mi interessa come appare in Qt Designer.
Elazar Leibovich,

-7

Impostare horizontalPolicy e VerticalPolicy per i controlli / widget su "Preferred" .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.