2

私はQStandardItemModelPySide に を持っていて、特定の行のテキストを取り消したいと思っています (これは To Do リスト アプリケーションであり、タスクが完了したら、テキストを取り消したいと思います)。ドキュメントに基づいて、QStandardItem正常に表示される aを指定すると、テキストに取り消し線を付けようとします。

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 に答える