2

Qt のレイアウトに問題があります。2 つの水平レイアウトと垂直メイン レイアウトを使用して、このコードをコンパイルしようとしています。各水平レイアウトには 3 つのボタンがあり、両方の水平レイアウトが垂直レイアウトに組み込まれています。しかし、このコードをコンパイルした後、「終了」ボタンだけが表示された小さなウィンドウしか表示されません。

firstline = new QHBoxLayout(this);
secondline = new QHBoxLayout(this);

layout = new QVBoxLayout(this);

eat = new QPushButton("Eat", this);
drink = new QPushButton("Drink", this);
smoke = new QPushButton("Smoke", this);

save = new QPushButton("Save", this);
load = new QPushButton("Load", this);
exit = new QPushButton("Exit", this);

firstline->addWidget(eat);
firstline->addWidget(drink);
firstline->addWidget(smoke);

secondline->addWidget(save);
secondline->addWidget(load);
secondline->addWidget(exit);

layout->addLayout(firstline);
layout->addLayout(secondline);

setLayout(layout);    
4

1 に答える 1

4

これらのステートメントを使用して、ダイアログのレイアウトを既に設定しています...

 firstline = new QHBoxLayout(this);
 secondline = new QHBoxLayout(this);

したがって、親ウィジェットを指定せずにコンストラクターを呼び出します。

firstline = new QHBoxLayout();
secondline = new QHBoxLayout();

これにより、期待どおりにレイアウトが表示されます。

于 2012-05-15T09:38:57.820 に答える