【发布时间】:2013-08-02 09:42:21
【问题描述】:
我继承了 QTextEdit
class Q_My_TextEdit(QtGui.QTextEdit):
def __init__(self, *args):
QtGui.QTextEdit.__init__(self, *args)
def undo(self):
print("undo")
#my own undo code
在我的其他班级:
self.textedit=Q_My_TextEdit()
def keyPressEvent(self,event):
if event.key()==(Qt.Key_Control and Qt.Key_Z):
self.textedit.undo()
如果您在 QTextEdit 中键入一些文本,然后按 CTRL-Z,它会被撤消,但不会调用函数“撤消”。那么具体是如何工作的呢?
背景是,在第二步中我想设置新文本(setText()),所以撤消堆栈被删除。我已经运行了可以自行撤消的代码,但我无法在 CTRL-Z 上触发它,因为使用“Z”键快捷键以某种方式被保留。例如,如果我用event.key()==(Qt.Key_Control and Qt.Key_Y) 调用我自己的撤消,它就可以工作。
【问题讨论】: