2015-02-10 23 views
2

我在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' 

回答

4

setStrikeOut回報void,你不應該把它傳遞作爲setFont的參數。你應該在那裏傳遞一個QFont的實例。

這將是最好檢索有關該項目的字體,設置了刪除線屬性,然後設置此修訂QFont作爲該項目的新字體:

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

這樣你會繼續等先前設置的項目字體的選項。

+0

謝謝,這對我也很好! – wondie 2016-02-01 16:34:10