2

QStandardItemModel在 PySide 中有一个,并且想在某些行上删除文本(这是一个待办事项列表应用程序,当任务完成时,我想删除文本)。鉴于QStandardItem显示良好的文档,我尝试使用以下方式删除文本:

QStandardItem.setFont(QtGui.QFont.setStrikeOut(True))

但是文本没有改变,我得到错误:

TypeError: descriptor 'setStrikeOut' requires a 'PySide.QtGui.QFont' object but received a 'bool'
4

1 回答 1

8

setStrikeOut返回void,您不应将其作为setFont. 你应该通过QFont那里的一个实例。

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

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

这样,您将保留先前设置的项目字体的其他选项。

于 2015-02-10T05:35:16.070 回答