Qt5 - изменение размера QSplitter с помощью QSizePolicy - PullRequest
0 голосов
/ 29 мая 2018

Я хочу создать виджет с 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 Ответ

0 голосов
/ 29 мая 2018

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

1-й

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

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

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

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

2-й

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

...