如何删除 Qt/PyQt 中 QStandardItem 的文本?
How to strikeout text of QStandardItem in Qt/PyQt?
我在 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'
setStrikeOut
returns void
并且您不应将其作为 setFont
的参数传递。你应该在那里传递一个 QFont
的实例。
最好检索有问题的项目的字体,设置它的删除线 属性,然后将修改后的 QFont
设置为项目的新字体:
f = item.font()
f.setStrikeOut(True)
item.setFont(f)
这样您就可以保留之前设置的项目字体的其他选项。
我在 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'
setStrikeOut
returns void
并且您不应将其作为 setFont
的参数传递。你应该在那里传递一个 QFont
的实例。
最好检索有问题的项目的字体,设置它的删除线 属性,然后将修改后的 QFont
设置为项目的新字体:
f = item.font()
f.setStrikeOut(True)
item.setFont(f)
这样您就可以保留之前设置的项目字体的其他选项。