如何制作9*9地图,其中我可以使用QT5.12.1在某些网格中编写数字



我刚开始学习QT,我计划编写一个sudoku程序。因此,我需要有一个9*9的地图,我可以在某些网格中输入数字。我已经使用qpainter绘制9*9映射,但是我无法在其网格中输入数字。如何解决该问题?而且,如果我想拥有一个新的9*9地图,其中有一些数字无法修改,在其他网格中,我可以自由输入数字,我该怎么办?非常感谢!

id也带有qlineedits,然后禁用预设的。

这应该给您一个起点(注意:在此示例中,我已经在MainWindow中添加了一个简单的Gridlayout):

  // 2D list of all line-edits - in case you want to access the elements later
QList<QList<QLineEdit*>> numEdits;
QValidator *validator = new QIntValidator(1, 9, this);
for (int idx = 0; idx < 9; ++idx) {
    numEdits.append(QList<QLineEdit*>());
    for (int jdx = 0; jdx < 9; ++jdx) {
        QLineEdit *item = new QLineEdit(this);
        item->setValidator(validator);
        // for pre-set values
        item->setEnabled(false);
        ui->gridLayout->addWidget(item, idx, jdx);
        numEdits[idx].append(item);
    }
}

最新更新