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

问题描述:

我在PySide中有一个QStandardItemModel,并且想删除某些行上的文本(这是一个待办事项列表应用程序,当任务完成时,我想通过文本)。给定一个QStandardItem显示精细,based on the documentation我尝试删除线与文本:如何删除Qt/PyQt中QStandardItem的文本?

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

但文字是不变的,而我得到的错误:

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

setStrikeOut回报void,你不应该把它传递作为setFont的参数。你应该在那里传递一个QFont的实例。

这将是最好检索有关该项目的字体,设置了删除线属性,然后设置此修订QFont作为该项目的新字体:

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

这样你会继续等先前设置的项目字体的选项。

+0

谢谢,这对我也很好! – wondie 2016-02-01 16:34:10