Layout de expansão automática com o Qt-Designer

217

Estou usando o Qt Designer.

Quero criar um QVBoxLayoutque se expanda automaticamente para preencher a janela inteira.

O layout dos QVBoxLayoutrestos fixos.

Como faço QVBoxLayoutpara expandir e preencher a janela inteira através do designer?

Elazar Leibovich
fonte
Se você quiser apenas para layout de uset em Qt Designer, por favor REF para abaixo dicas: stackoverflow.com/questions/1508939/qt-layout-on-qmainwindow

Respostas:

366

Depois de criar o seu QVBoxLayoutno Qt Designer, clique com o botão direito do mouse no plano de fundo do seu widget / caixa de diálogo / janela (não o QVBoxLayout, mas o widget pai) e selecione Lay Out -> Lay Out em uma grade na parte inferior do menu de contexto. O QVBoxLayoutagora deve se esticar para caber na janela e será redimensionado automaticamente quando a janela inteira for redimensionada.

Greg S
fonte
6
Obrigado, estou procurando uma solução para esse problema também.
Simon H.
35
Na verdade, você não precisa criar o layout da grade. Em vez de criar um QVBoxLayout, desmarque todos os itens e clique no plano de fundo do widget. Em seguida, selecione Disposição -> Disposição vertical.
Michal Kottman
3
@ Michael Kottman: Isso só funciona em tempo de design. Não mudará o layout quando o usuário redimensionar a janela em tempo de execução.
Jay
5
Tanto a grade quanto o layout vertical funcionam para mim no design e no tempo de execução.
AndiDog
2
Desejo adicionar um pequeno detalhe: se você deseja adicionar um layout auto- extensível a uma página QTabWidget , na verdade não pode clicar com o botão direito do mouse no plano de fundo da página, pois você selecionaria o QTabWidget e não a guia relevante. Você tem que clicar sobre o rótulo de guia, como mostrado na janela de designer e selecione Lay Out -> Lay em uma grade
Emanuele Cipolla
15

De acordo com a documentação , é necessário haver um conjunto de layout de nível superior.

É necessário um layout de nível superior para garantir que seus widgets sejam redimensionados corretamente quando a janela for redimensionada. Para verificar se você definiu um layout de nível superior, visualize seu widget e tente redimensionar a janela arrastando a alça de tamanho.

Você pode definir um limpando a seleção e clicando com o botão direito do mouse no formulário e escolhendo um dos layouts disponíveis no menu de contexto.

Layouts Qt

Mahmoud Hanafy
fonte
2

Tentei encontrar uma propriedade "ajustada à tela", mas não existe.

Mas definir "maximumSize" do widget como "um número grande" (como 2000 x 2000) ajustará automaticamente o widget ao espaço do widget pai.

Tero Nivala
fonte
6
O que acontece com esta técnica em um MacBook Pro com tela Retina (2880x1800)?
ta.speot.is
1
Basta configurá-lo para o número máximo que ele aceitará (que o Designer me mostra é 16777215) e deve funcionar em qualquer tamanho de monitor.
andreb
0

Depois de adicionar seu layout com pelo menos um widget, selecione sua janela e clique no botão "Atualizar" do QtDesigner. A interface será redimensionada no tamanho mais otimizado e seu layout caberá em toda a janela. Então, ao redimensionar a janela, o layout será redimensionado da mesma maneira.

Patrice Bernassola
fonte
Eu acredito que quando o usuário redimensiona a janela inteira, o layout vertical (e, portanto, seu conteúdo) se estende para ajustá-lo. Eu não me importo com a aparência no Qt Designer.
Elazar Leibovich
-7

Defina a política horizontal e a política vertical dos controles / widgets como "Preferido" .

Ensolarado
fonte