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