我正在编写一个简单的文本编辑器,只有很少的基本功能。
目前它的QMainWindow
QTabWidget
设置为centralWidget
。
我现在正在实施的是一些捷径; ctrl+s
要保存,ctrl+o
要打开,ctrl+t/ctrl+w
要创建新标签/关闭当前标签。
我知道如何实现所有功能,但问题是哪里来实现这些功能?
如果所有快捷方式都是QMainWindow
的成员并让它照顾好一切,或者我应该尝试将快捷方式分成他们的对应类吗?
例如,创建新标签(ctrl+t
)将成为QTabWidget
的一部分。
那么ctrl+s
(保存,duh)应该是QTextEdit
的一部分,因为它是我正在保存的文本,还是..?
基本上我的程序包含三个类; QMainWindow
,其中包含QTabWidget
,每个标签均为QTextEdit
。
答案 0 :(得分:3)
您的设置听起来很像我构建的许多应用程序。
我通常通过QAction::setShortcut()
方法处理快捷方式,所以它更多地关于存储QAction
对象的意义。这通常最终成为我的MainWindow类,因为很多动作都在MainWindw的菜单中使用。触发这些操作时,通常会通知TabWidget,而TabWidget会通知所有必需的选项卡,并且可以处理触发一个保存提示的“全部关闭”操作。
但是,如果将这些QAction
存储在MainWindow对象上是没有意义的,那么我就不会这样做,就像上下文菜单中我通常可以在各个标签上找到的那样。< / p>
希望有所帮助。