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);
}
Я сократил код, так как остальное не важно.
второй
И этот пост ответил на мой второй.