我正在用QT为我未来的游戏做一个网格。
我的QGridlayout出了点问题:
这是我的Grid构造函数:
Grid::Grid(QWidget *parent) :
QWidget(parent),
m_grid(new Cell**[Y_MAX])
{
QGridLayout *layout = new QGridLayout(this);
int x;
int y;
for (y = 0; y < Y_MAX; y++)
{
m_grid[y] = new Cell*[X_MAX];
for (x = 0; x < X_MAX; x++)
{
m_grid[y][x] = new Cell(x, y, this);
layout->addWidget(m_grid[y][x], y, x);
}
}
this->setLayout(layout);
}
如您所见,所有单元格都在网格中
你会说ok,但是哪里错了呢?问题是程序什么时候开始这是我的网格
要显示单元格,我需要调整窗口大小...为什么?.。
你能帮我一下吗?)
谢谢您抽时间见我
Ps:添加类单元格
也许从这里可以,不是吗?
Cell::Cell(const int x, const int y, QWidget *parent) :
QWidget(parent),
m_x(x),
m_y(y),
m_btn(new QPushButton("", this))
{
m_btn->setFixedSize(WIDTH, HEIGHT);
m_btn->setFlat(true);
m_btn->setEnabled(false);
m_btn->setStyleSheet("border:1px solid #000000;border-radius: 13px;background-color: white;");
QObject::connect(m_btn, SIGNAL(clicked()), this, SLOT(selected()));
}
发布于 2018-07-20 23:54:10
您的自定义小部件Cell
在显示时需要有正确的大小提示。看见
sizeHint : const QSize
此属性保存小部件的推荐大小
如果此属性的值是无效的大小,则不建议使用任何大小。
如果此小部件没有布局,则sizeHint()的默认实现将返回无效的大小,否则将返回布局的首选大小。
https://stackoverflow.com/questions/51430625
复制相似问题