2017-07-27 406 views
0

我开发了一个样本Qt应用程序。我的应用程序只有在终端首先执行下面的命令时才运行。在Qt应用程序启动之前设置系统环境变量

export QT_X11_NO_MITSHM=1 

如果我们不出口上述变量和启动应用程序(“./test”),则在打开的窗口,但它有一些油漆呈现的问题。

任何人都可以提出,我们怎么能从应用程序本身设置这个变量,而不是从终端外部设置?

在此先感谢。

+1

也许从shell脚本启动应用程序会有帮助吗?脚本将设置环境并启动可执行文件。 – vahancho

+0

通过为您的应用程序提供'QT_X11_NO_MITSHM = 1路径/至/真实/应用程序$ @'的脚本? – fghj

+0

脚本将是解决方案,但如果可能的话,我想用应用程序来完成。 – Neel

回答

1

我建议使用qputenv()添加它,然后在main()中创建QApplication。有些ENV vars必须在Qt开始加载之前设置,因为它们在全局状态下使用,我不确定X11将与qputenv()一起使用,但这是将它们引入代码库的最佳方法。 QtGlobal::qputenv documentation