Qt5 Как вызвать QApplication из другого класса?

Привет, я пишу многоязычное приложение в Qt5. я хочу получить доступ

QApplication a(argc, argv);

локализован в main.cpp из моего класса настроек. Мне нужно это для выполнения 2 команд:

a.installTranslator();
a.removeTranslattor();

когда я пытаюсь сделать это, я получаю ошибки:

C2228: left of '.installTranslator' must have class/struct/union
C2228: left of '.removeTranslator' must have class/struct/union

Как я могу это назвать?


person km2442    schedule 26.11.2015    source источник
comment
может быть en.wikipedia.org/wiki/Most_vexing_parse   -  person Ivan Aksamentov - Drop    schedule 26.11.2015
comment
предоставьте m(c)ve   -  person Ivan Aksamentov - Drop    schedule 26.11.2015
comment
Я решил свою проблему. Теперь я получаю QApplication по классу qApp. Извините, что я потратил ваше время.   -  person km2442    schedule 26.11.2015


Ответы (1)


В зависимости от того, какая функция вам нужна, у вас есть два варианта:

  1. QApplication имеет несколько статических методов, поэтому вы можете вызывать их практически из любого места, если вы включаете заголовок.
  2. Как вы уже прокомментировали, существует глобальный указатель qApp, обеспечивающий дальнейший доступ к нестатические методы. Это потому, что QApplication является синглтоном в любом приложении Qt.

Обратите внимание, это справедливо для Qt 4 и Qt 5.

person Ariel M.    schedule 26.11.2015