3

我对桌面 GUI 开发相当陌生。

我正在尝试获得一个带有 3 个平行垂直面板的框架,所有面板都垂直扩展以填充窗口。

我希望前两个面板不是灵活的,而是具有固定的尺寸。

前任:

 Fixed W.
|========|
############################ 
#    #    #                # ^
#Fix.#Fix.#                # |
#|--|#|--|# <--Flexible--> # Flexible vertically all 3 panels.
#    #    #                # |
#    #    #                # v
############################

我怎样才能获得这个布局?我尝试过网格,垂直,水平,但我认为我得到了所有意大利面条般的和困惑。

谢谢你。

4

1 回答 1

4

你需要一个

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();
}

和截图:

在此处输入图像描述

于 2012-12-21T22:47:23.080 回答