如何解决如何将Qt5 QAbstractTableModel与QTableView一起使用,以使布尔状态由禁用的复选框表示为灰色
我有一个带有QTableView
的{{1}}和某些单元格中的某些复选框。
要获取某些单元格的复选框,我的模型QAbstractTableModel
-函数会执行类似的操作
data
这很好。现在,我想更改此Widget-Model-Pair,以便对于类似复选框的单元格,“模型状态”是固定且只读的,复选框应将其显示,但不能被编辑并且灰显。
这几乎可以通过删除class MyModel(QAbstractTableModel):
# ...
def flags(self,index):
if is_checkbox_like_cell(index):
return Qt.ItemIsUserCheckable | super().flags(index)
# ... (other cases)
def data(self,index,role):
if role == Qt.CheckStateRole and is_checkbox_like_cell(index):
return Qt.Checked # or `Qt.UnChecked` depending on model state
# ... (other cases)
函数中的Qt.ItemIsUserCheckable
标志来解决,但是,这些复选框并未显示为灰色。有没有办法做到这一点?
我发现不满意的解决方案是使用flags
状态,因为这将数据端与纯粹的视图端表示问题耦合在一起。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。