我想在 qtableview 中添加一个带有复选框的列,模型是 qsqlmodel。模型已经有查询,qtableview 应该在第一列中显示复选框。我尝试了谷歌中的所有解决方案,但失败了。欢迎任何帮助。
问问题
1073 次
1 回答
0
您好,您需要执行以下操作。
设置标志
Qt::ItemFlags
为您希望复选框出现的列设置标志。有关设置复选框的示例,请参阅此答案,我如何仅从 QTableView 和 QStandardItemModel 获取复选框项目?
即你的模型类应该覆盖:
Qt::ItemFlags flags ( const QModelIndex & index ) const;
以确保您返回Qt::ItemIsUserCheckable
您的第一列。
返回检查状态
接下来,您将要修改模型类以覆盖:
QVariant data( const QModelIndex& index, int role = Qt::DisplayRole ) const;
以确保它返回一些东西,Qt::CheckStateRole
例如Qt::Unchecked, Qt::Checked, or Qt::PatriallyChecked
希望有帮助!
于 2012-07-29T12:47:47.947 回答