如何删除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)
这样你会继续等先前设置的项目字体的选项。
谢谢,这对我也很好! – wondie 2016-02-01 16:34:10