gpt4 book ai didi

python - 在 QStyledItemDelegate 中使用信号 closeEditor 的正确方法?

转载 作者:太空宇宙 更新时间:2023-11-04 11:00:30 34 4
gpt4 key购买 nike

我正在重写 QStyledItemDelegate 类并重新实现 eventFilter 函数,以便在检测到 Tab 按下时自定义编辑器行为。但是,以下内容不起作用。调用 closeEditor 信号的正确方法是什么?

class CustomDelegate(QStyledItemDelegate):
def __init__(self, parent=None):
super(CustomDelegate, self).__init__(parent)

def eventFilter(self, editor, event):
if (event.type() == QEvent.KeyPress and
event.key() == Qt.Key_Tab):
print "Tab captured in editor"
self.commitData.emit(editor) #This is working
self.closeEditor.emit(editor) #This does not seem to do anything??
return True
return QStyledItemDelegate.eventFilter(self,editor,event)

最佳答案

这是一个老问题,但我刚遇到同样的问题并找到了这个问题。

我通过改变来解决它

self.closeEditor.emit(编辑器)

线到

self.closeEditor.emit(编辑器,QAbstractItemDelegate.NoHint)

commitData 调用将setModelData。如果您不调用 closeEditor,当编辑器本身关闭时,将再次调用 setModelData

关于python - 在 QStyledItemDelegate 中使用信号 closeEditor 的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5960775/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com