qt的ListView中设置setIndexWidget

 
  
    QStandardItemModel *model = new QStandardItemModel(ui->listView);
    ui->listView->setModel(model);
    for(int i = 0; i < 5; i++) {
        QStandardItem *item = new QStandardItem(QString::number(i));
        model->appendRow(item);
        QModelIndex index = model->indexFromItem(item);
        QCheckBox *box = new QCheckBox( ui->listView);
        box->setCheckable(true);
        box->setCheckState(Qt::Unchecked);
        box->setText("ssss");
        ui->listView->setIndexWidget(index, box);
    }
setIndexWidget要生效,必须setModel(model)在它的前面,以前都是习惯有了数据后再设置model。坑啊

你可能感兴趣的:(QT)