2017-04-10 26 views
0

QTを使用して、組み込みLinuxデバイス用のアプリケーションを作成しています。私のアプリケーションを起動したとき、マウス&キーボードが機能しませんでした。この問題についての検索から、私たちは、アプリケーションを起動する前にコマンドの下に実行する必要があることを知って来た:Qt内のQWS_MOUSE_PROTOコードの使用方法

export QWS_MOUSE_PROTO="USB:/dev/input/event-mouse" 
export QWS_KEYBOARD="USB:/dev/input/event-keyboard" 

上記のコマンド実行した後、私は自分のアプリケーションでマウスとキーボードを使用することができました。しかし、私はアプリケーションを実行する必要があるときはいつでも、私はそれらのコマンドを実行する必要があるので、これはちょっと奇妙に見えます。また、私は起動後に自動実行するように自分のアプリケーションを設定するので、私はそれらのコマンドを実行することができなくなりますので。そこで私は、これらのコマンドを自分のコードのどこかに入れて、自動的に実行させてからアプリケーションを起動できるかどうか疑問に思っていました。誰も私をここで案内することができますか?助けてください。ありがとう。 Qtが開始される前に、あなたはまた、アプリケーションの内部で環境変数を設定することができます

#! /usr/bin/env bash 
export QWS_MOUSE_PROTO="USB:/dev/input/event-mouse" 
export QWS_KEYBOARD="USB:/dev/input/event-keyboard" 
my_application 

答えて

2

代わりに、アプリケーションを実行しているのは、スクリプトを実行することができます。 setenvを使用してください:overrideパラメータがゼロに設定されているので

#include <cstdlib> 

int main(int argc, char ** argv) { 
    // Set default values if none are set. 
    setenv("QWS_MOUSE_PROTO", "USB:/dev/input/event-mouse", 0); 
    setenv("QWS_KEYBOARD", "USB:/dev/input/event-keyboard", 0); 
    QApplication app(argc, argv); 
    ... 
    return app.exec(); 
} 

外部QWS_MOUSE_PROTOQWS_KEYBOARDは内部デフォルト値を上書きします。これが望ましい動作です。

+0

スクリプトにすべてを含めるとうまくいきましたが、コード内に組み込んだときになぜ機能しなかったのか分かりません。 –

関連する問題