コード例 #1
0
ファイル: Sheet.cpp プロジェクト: maksverver/kakuro
void Sheet::setGridSize(const QSize &size)
{
    if(size.width() < 0 || size.height() < 0)
        return;

    QGridLayout *l = qobject_cast<QGridLayout*>(layout());

    l->setEnabled(false);

    clear();

    grid_size = size;

    // Add cell controls
    for(int r = 0; r < size.height(); ++r)
        for(int c = 0; c < size.width(); ++c)
        {
            CellControl *cc = new CellControl(QPoint(c, r), *this);
            l->addWidget(cc, r, c);
            cc->show();
        }

    // Set cell neighbours
    for(int r = 0; r < size.height(); ++r)
        for(int c = 0; c < size.width(); ++c)
        {
            cellAt(r, c).setNeighbours(
                r > 0                 ? &cellAt(r - 1, c    ) : 0,
                c > 0                 ? &cellAt(r    , c - 1) : 0,
                r < size.height() - 1 ? &cellAt(r + 1, c    ) : 0,
                c < size.width()  - 1 ? &cellAt(r    , c + 1) : 0 );
        }

    setFixedSize(l->minimumSize());
    l->setEnabled(true);
}
コード例 #2
0
void QGridLayoutProto::setEnabled(bool enable)
{
  QGridLayout *item = qscriptvalue_cast<QGridLayout*>(thisObject());
  if (item)
    item->setEnabled(enable);
}