0

在我的 Qt 应用程序中,我的主窗口小部件的 ctor 中有以下代码。无论我如何对齐添加到 QGridLayout 的按钮,它们始终位于左上角,彼此重叠。

谁能告诉我我做错了什么,我找不到。

btn_File= new QPushButton("&File", this);
btn_Close = new QPushButton("&Close", this);
btn_File->setAutoFillBackground(true);
btn_Close->setAutoFillBackground(true);

QGridLayout * layout = new QGridLayout(this);
layout->setContentsMargins(20,20,10,10);
layout->setSpacing(5);
layout->addWidget(btn_File,2,2, Qt::AlignRight);
layout->addWidget(btn_Close,1,1);
this->setLayout(layout);

编辑:似乎只有btn_Close被绘制。我只是尝试在网格中添加一个 QComboBox,但它没有显示出来。

4

3 回答 3

1

问题是我的主窗口是从 中派生的QMainWindow,您需要在其中添加一个 CentralWidget,然后再添加 GUI 元素。我将主窗口更改为派生自QWidget,现在它可以工作了。

于 2011-12-05T13:05:59.080 回答
0

qt布局真的很烂!qgridlayout 上的对齐方式取决于对象的大小、对象需要多少列以及插入的最大对象的大小。所以很难按需要放置对象...我建议使用 setGeometry 或 move 代替!

于 2011-12-05T15:24:08.257 回答
0

试着this->adjustSize()在最后打电话?

于 2011-12-05T12:42:26.507 回答