2
我迄今所做的缺失:編輯表,而內容
我實現一個自定義的QAbstractTableModel
(在QTableView
-Widget使用),其中包含可編輯單元格。這些細胞的性質在我flags()
方法,看起來像這樣規定的:在頭兩列
def flags(self, index): # Qt was imported from PyQt4.QtCore
if index.column() < 2:
return Qt.ItemIsEditable | Qt.ItemIsEnabled | \
Qt.ItemIsSelectable
else:
return Qt.ItemIsEnabled | Qt.ItemIsSelectable
細胞標記爲可編輯的,就像我想要的。
我想要做什麼:
單擊該單元格但雙時觸發編輯包含的文本被刪除,空場中。
但我不希望刪除&替換包含的文本,因爲包含的文本可能會很長,而且不應該被重新輸入。我只想編輯已經包含的內容。當雙擊單元格時,應該可以使用之前包含的文本進行編輯(可能已經選中)。
問題:
我怎樣才能實現這種行爲?我是否需要編輯我的標誌方法併爲這些單元指定不同的屬性?
謝謝。我用'QItemDelegate'試過了你的第二種方法,它的工作方式和預期的一樣。如果我想在不使用類的情況下設置'Qt.EditRole',我該怎麼做?我需要在自定義的'TableModel'中定義一個新的方法嗎? – aisen
我不認爲你應該在你的模型中做任何事情。雖然,這是值得懷疑的,爲什麼你需要*創建一個自定義模型。 'QStandardItemModel'不工作?如果您只想控制標誌,則可以在創建項目時對其進行設置。它不一定是模型上的動態函數。 –
嗯,我只是想清楚如何用PyQt做任何事情,甚至不知道有什麼像標準的類。我會查找它。 – aisen