我是桌面 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();
}
和截图:
关于c++ - 3 个面板的 Qt 布局,全部垂直扩展以填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13998090/