【发布时间】:2012-07-26 20:58:25
【问题描述】:
我想在 qtableview 中添加一个带有复选框的列,模型是 qsqlmodel。模型已经有查询,qtableview 应该在第一列中显示复选框。我尝试了谷歌中的所有解决方案,但失败了。欢迎任何帮助。
【问题讨论】:
标签: python qt checkbox pyside qtableview
我想在 qtableview 中添加一个带有复选框的列,模型是 qsqlmodel。模型已经有查询,qtableview 应该在第一列中显示复选框。我尝试了谷歌中的所有解决方案,但失败了。欢迎任何帮助。
【问题讨论】:
标签: python qt checkbox pyside qtableview
您好,您需要执行以下操作。
设置标志
为您希望复选框出现的列设置标志。有关为复选框设置Qt::ItemFlags how do i get a checkbox item from a QTableView and QStandardItemModel alone? 的示例,请参阅此答案
即你的模型类应该覆盖:
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
希望有帮助!
【讨论】: