2015-11-26 12 views
1

嗨我在Qt5中编写多语言应用程序。我想访问Qt5如何从另一个类调用QApplication?

QApplication a(argc, argv); 

本地化在我的Settings类的main.cpp中。 我需要这个来执行两个命令:

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

,当我试图做这样做我得到的错误:

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

我怎么能打电话吗?

+0

可能https://en.wikipedia.org/wiki/Most_vexing_parse – Drop

+0

请提供[M(C)已经](HTTP: //stackoverflow.com/help/mcve) – Drop

+0

我已经解决了我的问题。现在我正在通过qApp课程获得QApplication。对不起,我浪费了你的时间。 – km2442

回答

3

根据您所需要的功能,你有两个选择:

  1. QApplication有几个静态方法,这样你就可以从几乎无处不在,只要你包含头文件调用它们。
  2. 正如您已经评论,there is a global pointer qApp允许进一步访问非静态方法。这是因为QApplication是任何Qt App中的单例。

注意,这是有效的Qt的4和Qt 5.