gpt4 book ai didi

c++ - 在几个 QMainWindows 之间共享 QUndoStack?

转载 作者:搜寻专家 更新时间:2023-10-31 01:58:23 27 4
gpt4 key购买 nike

大家好

在我的应用程序中,用户可以打开多个共享相同数据的 QWindows。(保存数据,多个 View )我需要在窗口之间使用一个共享的 QUndoStack。

撤消/重做工作正常,但是当任何一个 QWindow 关闭时,撤消/重做菜单被禁用。我猜这是因为堆栈被清除了。

有什么建议吗?谢谢

编辑:在每个 QMainWindow 创建中,我创建撤消/重做 QActions 如下:

   redoAction=undoStack->createRedoAction(getMainWindow() ,tr("&Redo"));
undoAction=undoStack->createUndoAction(getMainWindow(), tr("&Undo"));

其中 undoStack 是共享的 QUndoStack 实例。

这是我的应用程序的快照 - http://oi53.tinypic.com/2rfbztg.jpg

最佳答案

根据您在窗口之间共享撤消堆栈的原因,您也可以考虑使用 QUndoGroup。然后为每个窗口创建单独的堆栈,然后使用 QUndoGroup 进行分组。撤消/重做操作是从组中创建的,而不是从堆栈中创建的。

关于c++ - 在几个 QMainWindows 之间共享 QUndoStack?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4150966/

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