我正在尝试在Qt中编写战舰的实现,我正在使用两个QGridLayouts来包含用于表示玩家网格的QToolButtons.顶级布局(QMainWindows one)是QHBoxLayout.我想要完成的是删除这些按钮之间的间距.这就是它当下的样子:
它绝对不漂亮.我在这些布局中添加项目,如下所示:
QIcon icon; icon.addFile(QStringLiteral(":/images/Resources/field_blue.png"), QSize(), QIcon::Normal, QIcon::Off); for (int i = 0; i < dimensions; ++i) { for (int j = 0; j < dimensions; ++j) { QToolButton* buttonLeft = new QToolButton(this); buttonLeft->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); buttonLeft->setText(QString::number(i) + "-" + QString::number(j)); buttonLeft->setFixedSize(FIELD_ICON_SIZE + 10, FIELD_ICON_SIZE + 10); // FIELD_ICON_SIZE -> 20 buttonLeft->setIcon(icon); buttonLeft->setIconSize(QSize(FIELD_ICON_SIZE, FIELD_ICON_SIZE)); buttonLeft->setAutoRaise(true); QToolButton* buttonRight = new QToolButton(this); buttonRight->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); buttonRight->setText(QString::number(i) + "-" + QString::number(j)); buttonRight->setFixedSize(FIELD_ICON_SIZE + 10, FIELD_ICON_SIZE + 10); buttonRight->setIcon(icon); buttonRight->setIconSize(QSize(FIELD_ICON_SIZE, FIELD_ICON_SIZE)); buttonRight->setAutoRaise(true); _ui.gridLayoutLeft->addWidget(buttonLeft, i, j); _ui.gridLayoutRight->addWidget(buttonRight, i, j); } }
我可以尝试使用垫片,但它们会留下空白点,这也是不可取的.