gpt4 book ai didi

c++ - 访问 Qtableview 中的复选框

转载 作者:太空宇宙 更新时间:2023-11-04 12:54:12 26 4
gpt4 key购买 nike

我是 Qt 的新手,我正在尝试使用 SetIndexWidget()QCheckbox 列添加到我的 QTableView > 如下:

QSqlQueryModel * model = new QSqlQueryModel();

model->setQuery("select * from Rendezvous");
model->insertColumn(0);
model->setHeaderData(0, Qt::Horizontal, QObject::tr(""));
model->setHeaderData(1, Qt::Horizontal, QObject::tr("ID"));
model->setHeaderData(2, Qt::Horizontal, QObject::tr("Date"));
model->setHeaderData(3, Qt::Horizontal, QObject::tr("Heure"));
model->setHeaderData(4, Qt::Horizontal, QObject::tr("Type"));
model->setHeaderData(5, Qt::Horizontal, QObject::tr("Description"));
model->setHeaderData(6, Qt::Horizontal, QObject::tr("ID Client"));
ui->tableView_RDV->setModel(model);
ui->tableView_RDV->resizeColumnToContents(0);
for(int p=0;p<model->rowCount();p++)
{
ui->tableView_RDV->setIndexWidget(model->index(p,0),new QCheckBox());
}

这会在我的表格中添加一个复选框,我可以与之交互,但我不知道如何检查我的 QTableView 中的哪些行已选中 QCheckboxe

我很感激关于如何执行此操作的任何指示。

最佳答案

你应该使用 Qt::CheckStateRole用于显示复选框。它要快得多,并且对应于 Qt MVC:

for(int p=0;p<model->rowCount();p++)
{
auto checked = SomeLogic ? Qt::Checked : Qt::Unchecked;
auto index = model->index( p, 0 );
model->setData( index, checked, Qt::CheckStateRole );
}

注意:仅当您直接指定非空值的Qt::CheckStateRole 时才会显示复选框。如果将其设置为空的 QVariant(),则不会显示复选框。

关于c++ - 访问 Qtableview 中的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47411678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com