2017-06-21 162 views
0

具体做法是:在Qt中,设置环境变量有哪些不同的方法,有哪些优缺点?

  • 什么都是不同的方式,我可以设置环境变量?我知道qputenv。怎么样qmake.pro文件?那么Qt Creator的构建设置呢?那么像QGuiApplication::setAttribute(Qt::AA_UseOpenGLES);这样的命令呢?还有其他的方法吗?请包括任何限制(例如qputenv必须在QApplication范围内使用main.cpp
  • 每种方法的优缺点是什么?
  • 对于每一个方法,你可以举个例子变量设置为:
    • 整数
    • 字符串
    • 另一个环境变量

回答

2

有很多这里的困惑...... qmake和pro文件可以为编译过程设置环境变量为应用程序本身(及其子)。

setAttribute甚至没有关于环境变量 - 它是关于QGuiApplication的一些特定设置。

鉴于它们影响完全不同的事物,所以没有办法讨论优点和缺点 - 我们正在比较苹果和橙子。

至于设置环境变量为特定类型,这是一个没有多大意义的问题 - 环境变量只是一个字符串字典。如果你想将它设置为一个整数,你必须首先用你喜欢的任何Qt/C/C++方法将它转换为一个字符串。至于setAttribute,它又是一个完全不同的东西,它只是操纵标志,所以在这里谈论设置字符串或整数没有意义。

+0

你说如果它需要是一个整数(例如,'QT_QUICK_CONTROLS_HOVER_ENABLED'必须根据Qt文档设置为0或1),那么我们应该使用一个字符串。所以,严格的文档应该说“0”或“1”。那是对的吗? –

+0

你能解释qmake&pro与应用程序的环境变量之间的区别吗?我在Qt文档中看不到任何区别。具体而言,我可以在.pro中设置QT_QUICK_CONTROLS_HOVER_ENABLED,而不是将其设置在qputenv中。如果是这样,什么是正确的语法? –

+0

在'.pro'文件中设置的环境变量只影响编译,而不影响程序的执行。它们在编译时出现(例如,它们对编译器可见),而不是稍后运行的程序本身。 –

相关问题