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

 

posted on 2013-12-06 11:37  guolebin7  阅读(21760)  评论(0编辑  收藏  举报