我有一个包含多个GtkSourceView小部件的应用程序。主界面是一个包含多个"单元格"的工作表 - 每个单元格都是GtkSourceView。GtkSourceView内置了对撤消的支持,但每个小部件都有自己的"撤消堆栈"。我想在整个工作表上使用相同的撤消堆栈。
例如:假设上次编辑是在 SourceView A 中进行的,倒数第二个编辑是在 SourceView B 中进行的。无论哪个 SourceView 具有焦点,第一次按 Ctrl-Z 应还原 A 中的更改,第二次按 Ctrl-Z 应还原 B 中的更改。
有没有办法在保留多个 SourceView 小部件的同时完成此操作,还是我最好自己尝试实现这种类型的撤消功能?
注意:我认为尝试将整个工作表放在单个SourceView中太笨拙了。另外,我正在使用Python。
是的,将 Ctrl-Z 热键绑定到您自己的"撤消"菜单项,在该菜单项中,您可以跟踪源视图的更改顺序,并在相应的源视图上调用撤消方法。