我正在编写一个只有少数基本功能的简单文本编辑器。
目前它有一个 QMainWindow
和 QTabWidget
设置为 centralWidget
。
我现在正在实现的是一些捷径; ctrl+s
保存,ctrl+o
打开,ctrl+t/ctrl+w
新建标签/关闭当前标签标签。
我知道如何实现所有功能,但问题是在哪里实现这些功能?
是否应该让所有快捷方式成为 QMainWindow
的成员并让它处理所有事情,还是应该尝试将快捷方式分离到它们相应的类中?
例如,创建一个新选项卡 (ctrl+t
) 将成为 QTabWidget
的一部分。
现在 ctrl+s
(保存,duh)怎么样,它应该是 QTextEdit
的一部分,因为它是我正在保存的文本,还是..?
基本上我的程序包含三个类; QMainWindow
,其中包含QTabWidget
,每个tab都是一个QTextEdit
。
最佳答案
您的设置听起来很像我构建的许多应用程序。
我通常通过 QAction::setShortcut()
处理快捷方式方法,因此实际上更多的是关于在哪里存储 QAction
对象有意义。这通常最终成为我的 MainWindow 类,因为许多操作都在 MainWindw 的菜单中使用。当这些操作被触发时,结果通常是通知 TabWidget,后者又通知所有必要的选项卡,并且可以处理诸如“关闭所有”操作之类的事情,仅触发一个保存提示。
但是,如果将那些 QAction
存储在 MainWindow 对象上没有意义,那么我不会这样做,就像我个人通常可以使用的上下文菜单一样标签。
希望对您有所帮助。
关于c++ - 哪个类应该处理快捷方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17446317/