You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt QPlainTextEdit撤销后重做功能失效问题求助

QPlainTextEdit重做(CTRL+Y)失效问题排查与解决

问题描述

在QPlainTextEdit窗口输入内容后,按下CTRL+Z可正常完成撤销操作,但按下CTRL+Y执行重做时无任何响应。测试代码如下:

#!/usr/bin/env python3
# 撤销(CTRL+Z)后,重做(CTRL+Y)无法恢复文本
import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QPlainTextEdit
from PySide6.QtCore import QSize

class ExampleWindow(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        self.b.insertPlainText("示例文本1\n示例文本2\n示例文本3")
        self.b.resize(440,240)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = QMainWindow()
    w.setMinimumSize(QSize(440, 240))    
    w.setWindowTitle("QPlainTextEdit 撤销/重做示例") 
    edit = QPlainTextEdit(w)
    edit.insertPlainText("示例行1\n示例行2\n示例行3")
    edit.resize(440,240)
    print("撤销/重做功能已启用: ", edit.isUndoRedoEnabled())
    w.show()

    sys.exit(app.exec())

问题原因

QPlainTextEdit默认支持撤销/重做功能,但在部分操作系统或环境中,CTRL+Y并未被默认绑定到重做动作;或是系统全局快捷键与该组合键冲突,导致无法触发QPlainTextEdit的redo操作。另外需注意:只有执行过有效的撤销操作(即重做栈中有可恢复的内容)时,重做功能才会生效。

修复方案

手动为QPlainTextEdit的redo动作绑定CTRL+Y快捷键,确保跨环境的一致性。修改后的代码如下:

#!/usr/bin/env python3
# 修复QPlainTextEdit的重做(CTRL+Y)问题
import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QPlainTextEdit
from PySide6.QtCore import QSize
from PySide6.QtGui import QKeySequence

if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = QMainWindow()
    w.setMinimumSize(QSize(440, 240))    
    w.setWindowTitle("QPlainTextEdit 撤销/重做示例") 
    edit = QPlainTextEdit(w)
    edit.insertPlainText("示例行1\n示例行2\n示例行3")
    edit.resize(440,240)
    
    # 为重做动作绑定CTRL+Y和CTRL+SHIFT+Z快捷键
    redo_action = edit.redoAction()
    redo_action.setShortcuts([QKeySequence("Ctrl+Y"), QKeySequence("Ctrl+Shift+Z")])
    
    print("撤销/重做功能已启用: ", edit.isUndoRedoEnabled())
    w.show()

    sys.exit(app.exec())

验证步骤

  1. 运行修改后的代码,在文本框中输入新内容(比如添加一行测试文本)
  2. 按下CTRL+Z撤销输入,此时文本框恢复到初始状态
  3. 按下CTRL+Y,即可重做刚才的输入操作,文本框会重新显示添加的测试文本

内容的提问来源于stack exchange,提问作者Bruce

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 02:23:15