我正在使用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);
}
如您所见,所有单元格都在网格中
您会说好的,但是怎么了? 问题是程序启动时这是我的网格:
要显示单元格,我需要调整窗口大小...为什么? ...
能帮我一下吗:)
谢谢您的时间
Ps:添加Cell类
也许从这里可以吗?
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()));
}
答案 0 :(得分:0)
您的自定义窗口小部件Cell
在显示时需要具有正确的[大小提示] [1]。
见
sizeHint:const QSize
此属性保存小部件的建议大小
如果此属性的值是无效大小,则没有大小 推荐。
如果以下情况,sizeHint()的默认实现返回无效的大小: 此小部件没有布局,并返回布局的首选 否则大小。