Я пишу простой текстовый редактор с несколькими базовыми функциями.
На данный момент у него есть QMainWindow
с QTabWidget
установить как это centralWidget
,
То, что я сейчас реализую, это несколько ярлыков; ctrl+s
сохранить, ctrl+o
открыть и ctrl+t/ctrl+w
создать новую вкладку / закрыть текущую вкладку.
Я знаю, как реализовать все функции, но вопрос где реализовать функции?
Должны ли все ярлыки быть членами QMainWindow
и пусть он обо всем позаботится, или я должен попытаться разделить ярлыки на их соответствующие классы?
Например, создание новой вкладки (ctrl+t
) будет частью QTabWidget
,
Теперь насчет ctrl+s
(спаси, да), если это будет частью QTextEdit
так как это текст, который я сохраняю, или ..?
В основном моя программа содержит три класса; QMainWindow
, который содержит QTabWidget
и каждая вкладка является QTextEdit
,
Ваша настройка очень похожа на многие приложения, которые я создал.
Я обычно работаю с ярлыками через QAction::setShortcut()
метод, так что это действительно больше о том, где имеет смысл хранить QAction
объекты. Обычно это мой класс MainWindow, поскольку многие действия используются в меню MainWindw. Когда эти действия запускаются, обычно получается, что TabWidget уведомляется, что, в свою очередь, уведомляет все необходимые вкладки и может обрабатывать такие вещи, как действие «Закрыть все», вызывающее только одну подсказку сохранения.
Однако, если нет смысла хранить эти QAction
s в объекте MainWindow, тогда я не делаю, как в случае контекстного меню, которое я обычно имею на своих отдельных вкладках.
Надеюсь, это поможет.
Других решений пока нет …