문제

나는 a를 디자인했다 QMainWindow ~와 함께 QtCreator's 디자이너. 기본 중앙 위젯 (a QWidget) a QVBoxLayout 다른 모든 위젯이 있습니다. 이제 내가 원하는 모든 것은 그게 QVBoxLayout 전체 중앙 위젯 사각형 공간을 자동으로 차지합니다.

어떻게 할 수 있습니까? 중앙 위젯 속성이나 QVBoxLayout's 하나.

도움이 되었습니까?

해결책

당신은 a를 만들 필요가 없습니다 QVBoxLayout 수동으로. 중앙을 선택하십시오 QWidget Make Layout 버튼을 누릅니다.

alt text

다른 팁

사용하는 대신 코드로 수행하려면 QtCreator, 당신은 레이아웃을 a로 설정할 수 있습니다 QWidget 그런 다음 설정하십시오 QWidget 다음과 같은 기본 창의 중앙 위젯으로 :

#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);

}

당신의 위젯을 하나 이상 추가하십시오 MainWindow. 그런 다음 클릭하여 창을 선택하고 클릭하십시오. VerticalLayout 상단의 버튼 QTCreator. 수직 레이아웃은 중앙 위젯에 자동으로 추가되어 모든 표면을 채 웁니다.

이것은 이미 답변되었지만 개인적으로 모든 제어 요소를 유지하는 것을 선호합니다. 그리고 레이아웃이 양식에 수동으로 추가되었습니다. 클래스 파일에 컨트롤을 추가하지 않고 수업 내 논리와 관련된 위젯을 숨기거나 표시하기 위해 신호/슬롯을 연결합니다.

위젯에 레이아웃을 수동으로 추가하려면 먼저 하나 이상의 자식 위젯/제어를 추가해야합니다. 그것은 나에게 완전히 명확하지 않았고 먼저 레이아웃을 추가하려고했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top