Python 如何防止在双击时清除QTableView项
使用QAbstractTableModel的Python 如何防止在双击时清除QTableView项,python,qt,model,pyqt,qtableview,Python,Qt,Model,Pyqt,Qtableview,使用QAbstractTableModel的标志()方法将QTableView设置为可编辑: def flags(self, index): return Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsEditable 双击QTableView的项将此项置于编辑模式。默认情况下,预先存在的字符串将从字段中消失,并且整个项目为空。我想知道这种行为是否可以避免或克服 以下是用户双击QTableView字段之前的字段: 以下是双击时的外
标志()
方法将QTableView设置为可编辑:
def flags(self, index):
return Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsEditable
双击QTableView的项将此项置于编辑模式。默认情况下,预先存在的字符串将从字段中消失,并且整个项目为空。我想知道这种行为是否可以避免或克服
以下是用户双击QTableView字段之前的字段:
以下是双击时的外观:
编辑的工作代码(非常感谢):
使用EditRole调用时,需要设置数据的返回值:
def data(self, index, role):
if not index.isValid(): return false
row=index.row()
if row>len(self.items): return false
if role == Qt.DisplayRole or role == Qt.EditRole:
return self.items[row]
@Sputnix如果要为两个角色返回相同的文本,则应在相同的if语句下执行此操作。减少重复代码:)好的!固定的!再次感谢!您使用的python\pyqt版本是什么?我的版本从所有这些QVariant中抛出了很多错误\警告
def data(self, index, role):
if not index.isValid(): return false
row=index.row()
if row>len(self.items): return false
if role == Qt.DisplayRole or role == Qt.EditRole:
return self.items[row]