Я прошу прощения за длинный абзац, но это единственный способ, которым я могу это объяснить.
Основной вопрос:
Как у меня есть несколько окон, которые совместно используют некоторую функциональность пользовательского интерфейса, не имея всего этого в одном гигантском классе?
Моя ситуация:
У меня есть вопрос относительно дизайна приложения, содержащего несколько окон. Окна будут совместно использовать несколько компонентов в интерфейсе пользователя (дата & время, батарея и т. д.). Каждое окно также будет иметь большую часть своего пользовательского интерфейса. Моя первоначальная идея заключалась в том, чтобы иметь отдельные окна, чтобы класс был не таким большим, а файлы пользовательского интерфейса было легче просматривать. Тем не менее, я обнаружил, что я повторил код для функциональности общего пользовательского интерфейса, так как я должен реализовать его в каждом классе. Кроме того, я вынужден иметь много соединений между окнами, чтобы убедиться, что некоторые вещи обрабатываются при смене окон.
Возможное решение:
Я читал, что QStackedWidget хорош для нескольких окон, но все будет в одном классе. Если, конечно, есть способ обработки некоторых из пользовательского интерфейса в подклассе основного пользовательского интерфейса? Без создания других файлов пользовательского интерфейса?
Я согласен с использованием QStackedWidget
, Я обычно проектирую свои приложения со следующими идеологиями:
QStackedWidget
реализация написана в первом классе, для которого main.cpp
создает экземпляр объекта и показывает.QStackedWidget
динамически создавать классы окна и удалять их (по мере необходимости). Это необязательно и будет зависеть от производительности вашего приложения на вашем устройстве.Других решений пока нет …