使用以下代码生成一个带按钮的窗口:
#include <QApplication>
#include <QtWidgets>
class Item : public QWidget {
QHBoxLayout hLayout{this};
QPushButton bt{"button"};
public:
Item() : QWidget() {
hLayout.addWidget(&bt);
}
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QWidget w;
QVBoxLayout vLayout(&w);
vLayout.addWidget(new Item());
vLayout.addWidget(new Item());
vLayout.addWidget(new Item());
vLayout.addWidget(new Item());
vLayout.addWidget(new Item());
w.show();
return app.exec();
}
layout.setContentsMargins(0,0,0,0)
我可以去:
是否可以减少按钮之间的空间?
答案 0 :(得分:1)
您可以尝试使用setSpacing
方法:
vLayout.setSpacing(0);
但我认为这里真正的问题是你的布局扩展到覆盖整个小部件,并相应地安排布局项目。
您可以尝试的另一件事是设置保证金:
vLayout.setMargin(0);
答案 1 :(得分:0)
您可以通过调整间距来删除空格:
http://doc.qt.io/qt-5/qlayout.html#spacing-prop
将其设置为0
应该将小部件组合在一起。
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QWidget w;
QVBoxLayout vLayout(&w);
vLayout.addWidget(new Item());
...
// Removes outer margins
vLayout.setContentsMargins(0,0,0,0);
// Set space between items to '0'
vLayout.setSpacing(0);
w.show();
return app.exec();
}
在上面的示例中,您可能还应添加strech部分: