Qt5 - Изменение размера QSplitter с помощью QSizePolicy

Я хочу создать виджет с 3 разделами: Главное окно содержит горизонтальный QSplitter, который содержит вертикальный QSplitter. Но я не зашел так далеко, так как первый сплиттер не максимизируется в окне. Я прочитал документацию и до сих пор не могу понять это.

MainWindow::MainWindow() {
    setWindowTitle(ProgramVars::getName() + " - " + ProgramVars::getVersion());
    setWindowIcon(ProgramVars::getIcon());

    content = new QSplitter(this);
    content->setLineWidth(2);
    content->setMidLineWidth(2);

    QPixmap pixmap;
    pixmap.load("../res/icon.png"); //just for testing
    l1 = new QLabel;
    l2 = new QLabel;
    l1->setPixmap(pixmap);
    l2->setPixmap(pixmap);

    content->addWidget(l1);
    content->addWidget(l2);

    content->setAutoFillBackground(true);
    QPalette palette(QPalette::Background, Qt::red); //making size visible
    content->setPalette(palette);

    content->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
    content->setMaximumSize(size());
}

(Я думаю, что добавление полных исходных файлов не является необходимым, но я добавлю их, если хотите.)

1 ответ

Решение

Я только что нашел ответ на свои вопросы:

первый

Я должен добавить подвиджеты в макет, предоставляемый QMainWindow, а не непосредственно как ребенок.

MainWindow::MainWindow() {
    content = new QSplitter();
    content->setLineWidth(2);
    content->setMidLineWidth(2);

    **setCentralWidget(content);**
    content->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
}

Я сократил код, так как остальное не важно.

второй

И этот пост ответил на мой второй.

Другие вопросы по тегам