Qt Gridlayout不会重新对齐GUI元素

Qt Gridlayout doesn't realign GUI elements

本文关键字:对齐 GUI 元素 新对齐 Gridlayout Qt      更新时间:2023-10-16

我有以下代码在我的主窗口小部件,在我的Qt应用程序。无论我如何对齐添加到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到网格,它没有显示出来。

问题是我的主窗口来自QMainWindow,您需要在添加GUI元素之前添加CentralWidget。我把我的主窗口改为从QWidget派生,现在它工作了。

最后尝试呼叫this->adjustSize() ?

qt布局真的很烂!qgridlayout的对齐取决于对象的大小,对象需要多少颜色,以及插入的最大对象的大小。所以很难按你的意愿放置物体。我建议使用setGeometry或move代替!