Pergunta

Eu projetei um QMainWindow com o designer QtCreator's. Trata-se do elemento central de default (a QWidget) que contém uma QVBoxLayout com todos os outros widgets na mesma. Agora tudo que eu quero, é que o QVBoxLayout automaticamente ocupa todo o widgets de centrais espaço retângulo.

Como posso fazer isso? Eu não encontrei qualquer propriedade utilizável nem nas propriedades de widgets central nem os QVBoxLayout's.

Foi útil?

Solução

Você não tem que criar um QVBoxLayout manualmente. Basta seleccionar a sua QWidget central e pressionar um botão make-layout.

text alt

Outras dicas

Se você quiser fazê-lo com o código em vez de usar QtCreator, você pode definir o layout em um QWidget e defina a QWidget como o widget central da janela principal assim:

#include <QtGui>
#include <QWidget>
#include <QHBoxLayout>
#include "mainwindow.h"

MainWindow::MainWindow() {  

        // Set layout
        QHBoxLayout *layout = new QHBoxLayout;
        layout->addWidget(myWidget1);
        layout->addWidget(myWidget2);

        // Set layout in QWidget
        QWidget *window = new QWidget();
        window->setLayout(layout);

        // Set QWidget as the central layout of the main window
        setCentralWidget(window);

}

Adicionar pelo menos um widget no seu MainWindow. Em seguida, selecione a janela clicando sobre ela e clique no botão VerticalLayout no topo da QTCreator. Você Vertical layout é automaticamente adicionado ao widget central e enche toda a superfície.

Esta já foi respondida, mas eu pessoalmente prefiro manter todos os elementos de comando e layouts adicionados manualmente ao formulário. Eu não adicionar controles nos arquivos de classe, eu simplesmente ligar os sinais / ranhuras para ocultar / mostrar Widgets relevantes para a lógica na classe, dentro da classe.

Para adicionar manualmente um layout para qualquer widget primeiro você deve adicionar pelo menos um widget filho / controle. Isso não estava totalmente claro para mim e eu estava tentando adicionar o layout em primeiro lugar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top