3

私はデスクトップ GUI 開発にかなり慣れていません。

3 つの平行な垂直パネルを持つフレームを取得しようとしています。すべて垂直に拡大してウィンドウを埋めます。

最初の 2 つのパネルを柔軟にするのではなく、固定サイズにする必要があります。

元:

 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 に答える