之前不太了解Qt中的相关控件,一直尝试直接在tableview上增加复选框。
但相对来说,在tableview增加复选框的工作量与麻烦程度远超tableWidget。
接下来是如何在Qt的tableWidget实现插入复选框的具体代码:
void smsrolenew::createtablewidget() { QSqlQuery query; int recordcount; //总行数 query.exec("select count(*) from action"); if(query.seek(0)) { recordcount = query.value(0).toInt(); } //因为tableWidget需要提前规定好行数与列数 ui->tableWidget->setColumnCount(2); ui->tableWidget->setRowCount(recordcount); //动态设置行数 QStringList list; list<<"选择"<<"权限"; ui->tableWidget->setHorizontalHeaderLabels(list); ui->tableWidget->setColumnWidth(0,100); ui->tableWidget->setColumnWidth(1,320); query.exec("select act_name from action"); for(int i = 0;query.next();i++) { QTableWidgetItem *check = new QTableWidgetItem(); check->setCheckState(Qt::Unchecked); QString actname = query.value(0).toString(); ui->tableWidget->setItem(i,0,check); //插入复选框 ui->tableWidget->setItem(i,1,new QTableWidgetItem(actname)); } }