之前不太了解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)); } }