Какой класс должен позаботиться о ярлыках?

Я пишу простой текстовый редактор с несколькими базовыми функциями.
На данный момент у него есть QMainWindow с QTabWidget установить как это centralWidget,
То, что я сейчас реализую, это несколько ярлыков; ctrl+s сохранить, ctrl+o открыть и ctrl+t/ctrl+w создать новую вкладку / закрыть текущую вкладку.

Я знаю, как реализовать все функции, но вопрос где реализовать функции?
Должны ли все ярлыки быть членами QMainWindow и пусть он обо всем позаботится, или я должен попытаться разделить ярлыки на их соответствующие классы?
Например, создание новой вкладки (ctrl+t) будет частью QTabWidget,
Теперь насчет ctrl+s (спаси, да), если это будет частью QTextEdit так как это текст, который я сохраняю, или ..?

В основном моя программа содержит три класса; QMainWindow, который содержит QTabWidgetи каждая вкладка является QTextEdit,

4

Решение

Ваша настройка очень похожа на многие приложения, которые я создал.

Я обычно работаю с ярлыками через QAction::setShortcut() метод, так что это действительно больше о том, где имеет смысл хранить QAction объекты. Обычно это мой класс MainWindow, поскольку многие действия используются в меню MainWindw. Когда эти действия запускаются, обычно получается, что TabWidget уведомляется, что, в свою очередь, уведомляет все необходимые вкладки и может обрабатывать такие вещи, как действие «Закрыть все», вызывающее только одну подсказку сохранения.

Однако, если нет смысла хранить эти QActions в объекте MainWindow, тогда я не делаю, как в случае контекстного меню, которое я обычно имею на своих отдельных вкладках.

Надеюсь, это поможет.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]