如何在Qt中的QGridLayout中设置QPushButton大小

时间:2017-11-10 15:24:58

标签: c++ qt qt5 qpushbutton qgridlayout

我正在学习qt。我正在尝试使用81 something(condition): # evaluate and return condition value while(condition is not satisfactory): condition = something(condition) else: # code post satisfaction of condition 构建一个小的GUI程序。
我想将这些按钮设置为9行和9列。我可以考虑实现此布局的最佳方法是使用QPushButton 运行后的情况如下:
enter image description here

我尝试了多种方法来更改按钮尺寸,但按钮尺寸仍然是默认值。
这是我的代码:

QGridLayout

那么我该怎么做才能真正改变这些按钮的大小呢?
谢谢。

1 个答案:

答案 0 :(得分:4)

如果您想为小部件使用固定大小,则必须使用setFixedSize()

const QSize btnSize = QSize(50, 50);
for(int i = 0; i < 81; i++) {
    btn[i] = new QPushButton(centralWidget);
    btn[i]->setText(QString::number(i));
    btn[i]->setFixedSize(btnSize);
}

QGridLayout *btnLayout = new QGridLayout(centralWidget);
for(int i = 0; i < 9; i++) {
    for(int j = 0; j < 9; j++) {
        btnLayout->addWidget(btn[j + i * 9], 0 + i, j);
        btnLayout->setSpacing(0);
    }
}
centralWidget->setLayout(btnLayout);

输出:

enter image description here