4

我正在编写一个只有几个基本功能的简单文本编辑器。目前它有一个QMainWindowwith QTabWidgetset as it's centralWidget。我现在正在实施的是一些捷径;ctrl+s保存、ctrl+o打开和ctrl+t/ctrl+w创建新选项卡/关闭当前选项卡。

我知道如何实现所有功能,但问题是在哪里实现这些功能?是否应该所有快捷方式都成为其成员QMainWindow并让它处理所有事情,或者我应该尝试将快捷方式分离到它们对应的类中?例如,创建一个新选项卡 ( ctrl+t) 将是QTabWidget. 现在怎么样ctrl+s(保存,duh),它应该是QTextEdit我要保存的文本的一部分,还是......?

基本上我的程序包含三个类;QMainWindow, 其中包含QTabWidget, 每个选项卡都是一个QTextEdit.

4

1 回答 1

3

您的设置听起来很像我构建的许多应用程序。

我通常通过该方法处理快捷QAction::setShortcut()方式,因此更多的是关于在哪里存储QAction对象有意义。这通常最终成为我的 MainWindow 类,因为许多操作都在 MainWindw 的菜单中使用。当这些操作被触发时,结果通常是通知 TabWidget,它反过来通知所有必要的选项卡,并且可以处理诸如“关闭所有”操作仅触发一个保存提示之类的事情。

但是,如果将这些 s 存储在 MainWindow 对象上没有意义QAction,那么我不会,就像我通常在我的各个选项卡上提供的上下文菜单一样。

希望有帮助。

于 2013-07-03T13:16:45.787 回答