私がこれまでに行ったこと:
編集可能なセルを含むカスタム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
最初の 2 つの列のセルは、私が望むように編集可能としてマークされています。
私がしたいこと:
ただし、セルをダブルクリックして編集をトリガーすると、含まれているテキストが削除され、空のフィールドが表示されます。
しかし、含まれているテキストが非常に長くなる可能性があり、再入力してはならないため、含まれているテキストを削除して置き換えたくありません。すでに含まれているものを編集したいだけです。ダブルクリックすると、セルは以前に含まれていたテキスト (既に選択されている可能性があります) で編集可能になります。
質問:
どうすればこの動作を実現できますか? flags メソッドを編集して、これらのセルに別のプロパティを指定する必要がありますか?