Qt5 如何从另一个 class 调用 QApplication?

Qt5 How to call QApplication from another class?

您好,我正在用 Qt5 编写多语言应用程序。我想访问

QApplication a(argc, argv);

通过我的设置 class 在 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

如何调用?

根据您需要的功能,您有两种选择:

  1. QApplication 有几个静态方法,所以只要包含 header.
  2. ,几乎任何地方都可以调用它们
  3. 正如您已经评论的那样,there is a global pointer qApp 允许进一步访问非静态方法。这是因为 QApplication 在任何 Qt 应用程序中都是单例。

注意,这对 Qt 4 和 Qt 5 有效。