c++ - C++:QGridLayout - 小部件之间的空白
问题描述
我目前有一个 QGridLayout 的问题。
每个方块都是一个小部件,我有一个这样的循环
for(int i = 0; i < 100; i++;)
{
ui->layout->addWidget(new Square(this),rowNr,colNr);
}
QGridLayout 是 QFrame 的一部分。
我的问题是:为什么每个正方形之间有这么多空白(水平)
这是正方形的代码
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.setBrush(QBrush("#c56c00"));
painter.drawRect(0, 0, 30, 30);
我的问题在哪里?我想让每个单元格 1 接 1 的在它们之间没有任何空间。我不知道为什么它是垂直正确的。我对 C++ 和 Qt 完全陌生。
解决方案
试试看:
#include "mainwindow.h"
#include <QGridLayout>
#include <QPushButton>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
resize(800, 800);
auto widget = new QWidget(this);
setCentralWidget(widget);
auto gl = new QGridLayout(widget);
gl->setSpacing(0);
gl->setAlignment(Qt::AlignTop | Qt::AlignLeft);
widget->setLayout(gl);
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)
gl->addWidget(new QPushButton(QString::number(i*10 + j), this), i, j);
}
推荐阅读
- unity3d - 我的 Prefab 上的 Canvas Environment 在 Unity 检查器中显示为灰色,我做了什么?
- drupal - Drupal 中的 CWV 问题
- c# - Twilio C# API 回调不支持的媒体类型
- javascript - 如何在 React Navigation 中卸载屏幕?
- java - 如何避免在java中的子类中进行强制转换
- iframe - 电子网 | iFrame(节点:12792)电子:无法加载 URL:
- git - 在 Gerrit 上再次提交并将其合并到我的本地项目中的正确方法是什么
- unit-testing - Jest 中的作用域 NPM 包导入 @mdi 给出:“SyntaxError:无效或意外令牌。”
- html - 如何为 Web 应用程序创建“选择”按钮?
- javascript - 如何使用 Express API 从 reactjs 中类型文件的多个输入中知道哪个文件已上传