在我正在构建的应用程序中,我实现了一个全局撤消/重做系统,可以通过普通快捷键 Ctrl-Z 和 Ctrl-Shift-Z 访问该系统。
我还使用了具有自己的撤消/重做功能的 QLineEdit 字段。每当触发editingFinished 事件(按下回车或失去焦点)时,都会创建一个全局撤消事件。但是,如果您只是键入几个字母,然后按 Ctrl-Z,则该字段会捕获按键,使用其自己的撤消系统撤消您的最后一次编辑,然后不会传递按键。
我想实现的是:
当 QLineEdit 具有焦点并按下 Ctrl-Z 但 QLineEdit 中没有要撤消的编辑时(当 undoAvailable() 为 False 时),我希望小部件忽略按键并将其传递给其父级。
当撤消可用并且用户在小部件具有焦点时调用全局撤消/重做操作(IE 按下工具栏上的按钮),我希望将它们传递给这个小部件。
有任何想法吗?