Я пытаюсь написать интерфейс вокруг моей программы (используя qt). В основном у меня есть главное окно, и затем в определенные моменты оно должно «попросить пользователя о взаимодействии». - Я использую диалог для этого.
Теперь, когда я читаю о диалоговых окнах, я где-то читал, что у диалогового окна всегда должно быть родительское окно (главное окно, я полагаю?). Теперь я нахожу это трудным для реализации в моем проекте - так как мне кажется, что мне нужно изменить код, который я не хочу менять.
В основном основная программа использовалась как интерфейс командной строки. А для взаимодействия с пользователем программа просто создаст класс, который обрабатывает отображение и взаимодействие с пользователем. В версии GUI я наследую от этого класса, а производный класс просто переносит правильное диалоговое окно.
Теперь проблема в том, что в интерфейсе командной строки не говорится о «windows» или даже «qt». - Магистральное приложение не должно ничего знать о qt. Сообщение просто так:
MAIN_WINDOW -> tells backbone to start acting upon X
-> BACKBONE -> asks for UI (opens class with DIALOG).
Теперь проблема в том, как мне получить указатель MAIN_WINDOW через BACKBONE (который ничего не знает о qt) на DIALOG? Это тот случай, когда я должен использовать переменную singleton / global для MAIN_WINDOW? Я надеюсь, что есть лучшая парадигма?