我正在尝试将QPushButton
放在一个简单的应用程序中。我想要做的是让一个按钮居中并位于我的应用程序的底部。
我不想使用设计师,所以请不要建议(这是出于我自己的好奇心)。这是我的代码:
QGridLayout* layout = new QGridLayout;
QPushButton* button1 = new QPushButton("button1");
centralWidget->setLayout(layout);
qDebug() << "columns:";
qDebug() << layout->columnCount();
qDebug() << "rows:";
qDebug() << layout->rowCount();
button1->setFixedSize(100, 50);
layout->addWidget(button1,2,0,1,1,Qt::AlignCenter);
所以,这里有一些我很好奇的事情。
首先,当我执行columnCount()
和rowCount()
时,每个都会返回1
。如果我要在网格中设置按钮的行和列位置,我显然不会想要1x1网格。我该如何改变?
其次,如果我想要一个空行怎么办?我是否必须使用垫片?
提前致谢。
答案 0 :(得分:0)
首先,当我执行columnCount()和rowCount()时,它会返回 每个1个。如果我要设置的行和列位置 网格中的按钮,我显然不想要1x1网格。 我该如何改变?
将小部件添加到网格中的位置没有问题,例如: row = 20 column = 20 ,如果网格&#39 ; s大小仅 1 x 1 。它只是创建一个空单元格(零大小),填充未使用的行和列。
其次,如果我想要一个空行怎么办?我是否必须使用垫片 是什么?
是的,如果你想要一个空行或列,你必须将一个spacer(QSpacerItem
)或一个空小部件(一个普通的QWidget
)放入其中一个单元格中。如果你想要一个固定高度/宽度的行/列,你必须为这个spacer(或小部件)设置一个固定的宽度或高度。
答案 1 :(得分:0)
首先,当我执行columnCount()和rowCount()时,每次返回1。如果我要在网格中设置按钮的行和列位置,我显然不会想要1x1网格。我该如何更改?
是的,可以修复此问题,将QSpacerItem添加到第0行和第1行。
其次,如果我想要一个空行怎么办?我是否必须使用垫片?
是的,您可以使用QSpacerItem。