【发布时间】:2023-03-05 16:43:01
【问题描述】:
我在 pyqt 应用程序中有一个 QTreeView 的自定义子类。我试图让用户能够突出显示和“低光”(因为没有更好的术语)行。突出显示的行应具有粗体文本和(可选)不同的背景颜色。有什么想法吗?
我正在考虑将 StyleSheets 作为一种选择,但到目前为止还无法让它发挥作用。如果我设置 QTreeView 的样式表:
self.setStyleSheet("QTreeView::item:selected {border: 1px solid #567dbc;}")
我不知道如何手动启用“状态”以仅将所需行保留在特定状态。如果我尝试设置单个项目的样式表:
#modelIndex is a valid QModelIndex
modelIndex.internalPointer().setStyleSheet()
我遇到了段错误。
我不相信样式表是要走的路,我对所有想法持开放态度。谢谢!
【问题讨论】:
-
与最终修复无关,但我绕过了段错误。我忘记了 qsortfilterproxy 返回的内部指针需要转换为模型指针。因此:self.model().sourceModel().getItem(self.mapToSource(each))
-
我决定为每个项目添加一个 QFont 变量以跟踪项目的状态,然后使用委托使用自定义 QFont 绘制所有项目。谢谢大家!
标签: qt pyqt stylesheet qtreeview