我刚刚开始学习Qt,我计划编写一个数独程序。所以我需要一个9 * 9的地图,我可以在一些网格中输入数字。我已经使用QPainter绘制9 * 9地图,但是我不能在其网格中输入数字。如何解决这个问题?如果我想要一个新的9 * 9地图,其中一些数字不能在其中修改,而在其他网格中我可以自由输入数字,我该怎么办?非常感谢你!
我也使用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);
}
}