Рекомендации Qt: добавляйте сигналы и слоты в мое главное окно или создайте новый класс - PullRequest
1 голос
/ 05 июня 2011

Я просто размышляю о лучшей практике с приложением, которое я разрабатываю.Это простое приложение с одним окном, использующее Qt Creator.Он просто собирается запустить QProcess и показать вывод в поле QTextEdit.Чтобы сделать это, нужно немного обработать между выходом QProcess и QTextEdit, но я не знаю, где я должен это сделать, если я создам новый класс для этого или добавлю функции-члены и дополнительные сигналы и слоты в мойглавное окно?Я не хочу, чтобы главное окно стало раздутым и трудно читаемым, но в то же время я не хочу иметь больше исходных файлов, чем мне действительно нужно.

Есть мысли?

Ответы [ 2 ]

7 голосов
/ 05 июня 2011

Класс главного окна может очень легко раздуться со всеми видами функциональности. Я сам с этим справился, так что это очень реальная проблема.

Правда, это не столько вопрос QT, сколько вопрос объектно-ориентированного проектирования. Ключ в том, что ваше окно вывода не обязательно должно быть частью QMainWindow, так что, вероятно, не должно быть. Сделайте отображение виджета и вставьте его в главное окно. Это гораздо более гибко, так как если вам когда-либо понадобится переместить эту панель вывода, она не будет привязана к определенной части программы.

Логика, которая подает данные в эту панель вывода, также должна получить свой собственный класс, отделяющий ответственность за отображение вывода от ответственности за получение вывода.

Для справки о концепциях, лежащих в основе моего предложения, см. Принцип единой ответственности и разделение интересов .

0 голосов
/ 06 июня 2011

Также - вы можете захотеть прочитать по этой ссылке , чтобы просмотреть информацию о делегате для модели, как я склонен развивать в Qt. Как говорит человек выше - это больше вопрос хорошего ОО дизайна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...