40

QMainWindowデザイナーと一緒にデザインしましたQtCreator's。これは、他のすべてのウィジェットを含むデフォルトの中央ウィジェット(a QWidget)で構成されています。QVBoxLayout今私が欲しいのは、QVBoxLayout中央のウィジェットの長方形のスペース全体を自動的に占めることです。

これどうやってするの?中央のウィジェットのプロパティにも使用可能なプロパティも見つかりませんでしたQVBoxLayout's

4

4 に答える 4

79

を使用する代わりにコードでそれを実行したい場合はQtCreator、でレイアウトをQWidget設定してから、次のQWidgetようにメインウィンドウの中央ウィジェットとして設定できます。

#include <QtGui>
#include <QWidget>
#include <QHBoxLayout>
#include "mainwindow.h"

MainWindow::MainWindow() {  

        // Set layout
        QHBoxLayout *layout = new QHBoxLayout;
        layout->addWidget(myWidget1);
        layout->addWidget(myWidget2);

        // Set layout in QWidget
        QWidget *window = new QWidget();
        window->setLayout(layout);

        // Set QWidget as the central layout of the main window
        setCentralWidget(window);

}
于 2012-09-17T06:20:51.817 に答える
45

QVBoxLayout手動で作成する必要はありません。セントラルQWidgetを選択して、レイアウト作成ボタンを押すだけです。

代替テキスト

于 2009-10-02T11:20:41.017 に答える
16

に少なくとも1つのウィジェットを追加しますMainWindow。次に、ウィンドウをクリックして選択VerticalLayoutし、上部のボタンをクリックしますQTCreator。垂直レイアウトは中央のウィジェットに自動的に追加され、すべての表面を塗りつぶします。

于 2009-10-02T11:23:52.383 に答える
3

これはすでに回答済みですが、個人的には、すべてのコントロール要素とレイアウトを手動でフォームに追加しておくことを好みます。クラスファイルにコントロールを追加するのではなく、信号/スロットを接続して、クラス内のクラス内のロジックに関連するウィジェットを非表示/表示するだけです。

ウィジェットにレイアウトを手動で追加するには、最初に少なくとも1つの子ウィジェット/コントロールを追加する必要があります。それは私には完全には明らかではなく、私は最初にレイアウトを追加しようとしていました。

于 2015-01-22T18:07:38.800 に答える