2
我试图制作一个表格,允许用户输入一个满足某些标准的标记。我已连接到SQLite数据库,并在左侧检索了一列以了解条件的描述,并在右侧列中列出了我想要输入成绩(可编辑列)的列。这是我的代码:如何使表格的列可编辑?
QSqlQueryModel *model = new QSqlQueryModel();
QSqlQuery* qry = new QSqlQuery(conn.mydb);
qry->prepare("select I.itemDescription, S.grade from Items I, ItemsToStudent S where I.itemID = S.itemID and I.rubricID = ? and S.courseID = ? and S.studentID = ?");
qry->addBindValue(actid);
qry->addBindValue(courseid);
qry->addBindValue(studentid);
qry->exec();
model->setQuery(*qry);
ui->rubricTable->setModel(model);
但是,我不能让第二列可编辑。我将如何去完成这件事?
有一些领域,我不希望能够编辑,如标准列。我如何使特定栏不可编辑? 另外,当我尝试在成绩栏中输入成绩时,它会返回一个空白,并且我输入的值不会在数据库中更新。我应该使用信号更新还是应该自动执行该操作的关系表模型? – sengakae
好吧我通过一些Google搜索了解到我的第一个问题。将尝试寻找数字2. – sengakae
您可以有一个自定义模型并实现Qt :: ItemFlags QAbstractItemModel :: flags(const QModelIndex&index)const方法并返回一组标志,其中未设置Qt :: ItemIsEditable标志你不想编辑的单元格。 – Nejat