如何在Qt / PyQt中删除QStandardItem的文本?

时间:2015-02-10 03:26:37

标签: qt pyqt pyside text-styling qstandarditem

我在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'

1 个答案:

答案 0 :(得分:4)

setStrikeOut返回void,您不应将其作为setFont的参数传递。您应该在那里传递QFont的实例。

最好检索相关项目的字体,设置其删除线属性,然后将此修订后的QFont设置为项目的新字体:

f = item.font()
f.setStrikeOut(True)
item.setFont(f)

这样您就可以保留之前设置的项目字体的其他选项。