我需要在GUI上对齐元素:实际上是一个标签,但是在特定的位置。我知道如何使用QGridLayout,QHBoxLayout,我知道如何将字体更改为具有指定的大小。但是,我不知道如何对齐标签,如下图所示。有什么建议吗?
答案 0 :(得分:4)
这是最直接但硬编码的方式。
#include "widget.h"
#include <QLabel>
#include <QFont>
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
QSize frameSize = this->frameGeometry().size() - this->geometry().size();
this->resize(frameSize + QSize(250, 125));
QLabel * label = new QLabel(this);// parenting instead of layouts
label->resize(130, 32);
label->move(60, 40);
QFont f = label->font();
f.setPointSize(16);
label->setFont(f);
label->setText("Sample");
label->setFrameStyle(QFrame::Box);
}
Widget::~Widget()
{
}
布局和对齐是一个更好的解决方案,但是如果你真的想给所有东西提供数字......还要考虑使用表格。它使“硬编码”大小和布局变得更加容易。
希望有所帮助。
答案 1 :(得分:1)
如果你想要比例,但可以调整大小,你可以使用QBoxLayouts和addStretch()方法。大概你有一个1/2/1的比例,所以你首先添加一个伸展与拉伸1,然后你的小部件拉伸2然后另一个伸展拉伸1.那将是水平布局,然后你将采取该布局和将它放在1/1/1伸展的垂直布局中。
答案 2 :(得分:1)
如果你知道邻接布局以及如何使用它们而不是很好。
要在布局后进行调整,您应该使用style sheet。这里有一些examples。您可以在QApplication上设置样式表。
QPushButton#buttonName {
margin-top: 30px;
margin-bottom: 30px;
margin-left: 60px;
margin-right: 60px;
min-width: 130px;
min-height : 32px;
}
PS。我知道这是学生作业:P