The*_*ang 4 c++ qt qgridlayout qt5 qpushbutton
我目前正在学习qt。我正在尝试构建一个带有81的小型GUI程序QPushButton。
我想将这些按钮设置为9行9列。我认为可以实现此布局的最佳方法是使用QGridLayout。
运行后的样子如下:
我尝试了多种更改按钮大小的方法,但是按钮大小仍然保持默认。
这是我的代码:
void MainWindow::setButtons()
{
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]->resize(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);
}
Run Code Online (Sandbox Code Playgroud)
那么我该怎么做才能真正更改这些按钮的大小?
谢谢。
如果要为小部件使用固定大小,则必须使用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);
Run Code Online (Sandbox Code Playgroud)
输出:
| 归档时间: |
|
| 查看次数: |
5498 次 |
| 最近记录: |