0

我想在 qtableview 中添加一个带有复选框的列,模型是 qsqlmodel。模型已经有查询,qtableview 应该在第一列中显示复选框。我尝试了谷歌中的所有解决方案,但失败了。欢迎任何帮助。

4

1 回答 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 回答