2017-06-21 3 views
0

Im Einzelnen:In Qt, was sind die verschiedenen Möglichkeiten, um eine Umgebungsvariable zu setzen und was sind die Vor- und Nachteile?

  • Was sind all die verschiedenen Möglichkeiten, wie ich eine Umgebungsvariable einstellen kann?Ich weiß über qputenv. Was ist mit qmake und der .pro Datei? Was ist mit den Buildeinstellungen von Qt Creator? Was ist mit Befehlen wie QGuiApplication::setAttribute(Qt::AA_UseOpenGLES);? Gibt es noch andere Möglichkeiten? Geben Sie bitte alle Einschränkungen (z qputenv muss vor der Instanziierung verwendet werden, die QApplication innerhalb main.cpp)
  • Was sind die Vor- und Nachteile der einzelnen Ansätze?
  • Für jeden Ansatz können Sie ein Beispiel Setzen der Variable geben:
    • eine ganze Zahl
    • ein String
    • Variable eine andere Umgebung

Antwort

2

gibt es viel der Verwirrung hier ... qmake und pro Dateien können Umgebungsvariablen für den Kompilierungsprozess setzen, qputenv für die Anwendung selbst (und ihre Kinder).

setAttribute ist nicht einmal über Umgebungsvariablen - es geht um einige bestimmte Einstellungen der QGuiApplication.

Da sie völlig unterschiedliche Dinge betreffen, gibt es keine Möglichkeit, über Vor- und Nachteile zu sprechen - wir vergleichen Äpfel mit Orangen.

Wie zum Setzen von Umgebungsvariablen zu bestimmten Typen, das ist eine Frage ohne viel Bedeutung - Umgebungsvariablen sind nur ein Wörterbuch von Strings. Wenn Sie es auf eine ganze Zahl setzen wollen, müssen Sie es zuerst in eine Zeichenkette mit der von Ihnen bevorzugten Qt/C/C++ - Methode konvertieren. Wie für die setAttribute, wieder ist es eine ganz andere Sache, es manipuliert nur Flags, so über die Einstellung einer Zeichenfolge oder eine ganze Zahl hat hier keine Bedeutung.

+0

Sie sagten, dass, wenn es eine Ganzzahl sein muss (z. B. 'QT_QUICK_CONTROLS_HOVER_ENABLED' muss auf 0 oder 1 entsprechend Qt Docs gesetzt sein) dann sollten wir eine Zeichenfolge verwenden. Also, streng die Dokumente sollten "0" oder "1" gesagt haben. Ist das korrekt? –

+0

Können Sie den Unterschied zwischen einer Umgebungsvariablen für qmake & Pro vs. Anwendung erklären. Ich habe in den Qt-Dokumenten keine Differenzierung gesehen. Und speziell könnte ich sagen, QT_QUICK_CONTROLS_HOVER_ENABLED innerhalb der. Pro, anstatt es in Qputenv. Wenn ja, wie lautet die richtige Syntax? –

+0

Umgebungsvariablen, die in der '.pro'-Datei definiert sind, betreffen nur die Kompilierung, nicht die Ausführung des Programms. Sie sind vorhanden, während Sie kompilieren (also zum Beispiel für den Compiler sichtbar), nicht für das Programm selbst, das Sie später ausführen. –

Verwandte Themen