各位,最近在用QT qTableWidget编程时遇到一个问题:我该怎么办才能实现qTableWidget内只有一列能编辑,其它单元格不能编辑?各位请看看我的代码有什么问题
代码如下:
void Widget::on_pushButton_3_clicked()
{
QSqlDatabase DB;
if(QSqlDatabase::contains("qt_sql_default_connection")){
DB = QSqlDatabase::database("qt_sql_default_connection");
}
else{
DB = QSqlDatabase::addDatabase("QSQLITE");
}
DB.setDatabaseName("E:/QtProject/Test/SQLiteDB/systemParameter.db");
if(!DB.open())
{
qDebug() << "Failed to open datebase";
}
QSqlQuery query(DB);
query.prepare("SELECT * FROM parameter");
if (!query.exec()) {
qDebug() << "Query execution failed";
}
QSqlQueryModel *queryModel = new QSqlQueryModel();
queryModel->setQuery(query);
int rowCount = queryModel->rowCount();
int columnCount = queryModel->columnCount();
ui->tableWidget_2->setRowCount(rowCount);
ui->tableWidget_2->setColumnCount(columnCount);
for(int i = 0; i < rowCount; ++i){
QTableWidgetItem *item = ui->tableWidget_2->item(i,2);
if(item){
item->setFlags(item->flags() | Qt::ItemIsEditable);
}
}
for (int i = 0; i < rowCount; ++i) {
query.seek(i);
for (int j = 0; j < columnCount; ++j) {
QTableWidgetItem *item = new QTableWidgetItem(query.value(j).toString());
ui->tableWidget_2->setItem(i, j, item);
}
}
DB.close();
}