Я довольно новичок в разработке десктопного GUI.
Я пытаюсь получить рамку с 3 параллельными вертикальными панелями, все расширяющиеся вертикально, чтобы заполнить окно.
Я хочу, чтобы первые две панели были не гибкими, а фиксированного размера.
Пример:
Fixed W.
|========|
############################
# # # # ^
#Fix.#Fix.# # |
#|--|#|--|# <--Flexible--> # Flexible vertically all 3 panels.
# # # # |
# # # # v
############################
Как я могу получить этот макет? Я пробовал Grid, Vertical, Horizontal, но я думаю, что я все понял, как спагетти, и запутался.
Спасибо.
Тебе необходимо
QHBoxLayout
Вам просто нужно установить фиксированную ширину для ваших фиксированных виджетов (слева).
Вот полный рабочий пример на C ++:
#include <QApplication>
#include <QtGui>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QFrame* w1 = new QFrame;
w1->setFixedWidth(100);
w1->setStyleSheet("background-color: red");
QFrame* w2 = new QFrame;
w2->setFixedWidth(100);
w2->setStyleSheet("background-color: blue");
QFrame* w3 = new QFrame;
w3->setStyleSheet("background-color: green");
w3->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
QHBoxLayout* layout = new QHBoxLayout;
layout->addWidget(w1);
layout->addWidget(w2);
layout->addWidget(w3);
QWidget* app = new QWidget;
app->setLayout(layout);
app->show();
return a.exec();
}
И скриншот:
Других решений пока нет …