我在PySide中有QStandardItemModel
,并希望在某些行上删除文本(这是一个待办事项列表应用程序,当任务完成时,我想查看文本)。鉴于QStandardItem
显示正常,based on the documentation我尝试用以下内容删除文字:
QStandardItem.setFont(QtGui.QFont.setStrikeOut(True))
但文字没有改变,我收到错误:
TypeError: descriptor 'setStrikeOut' requires a 'PySide.QtGui.QFont' object but received a 'bool'
答案 0 :(得分:4)
setStrikeOut
返回void
,您不应将其作为setFont
的参数传递。您应该在那里传递QFont
的实例。
最好检索相关项目的字体,设置其删除线属性,然后将此修订后的QFont
设置为项目的新字体:
f = item.font()
f.setStrikeOut(True)
item.setFont(f)
这样您就可以保留之前设置的项目字体的其他选项。