Qt中如何在代码中使用QWS_MOUSE_PROTO

How to use QWS_MOUSE_PROTO inside code in Qt

我正在使用 QT 为嵌入式 linux 设备申请。当我启动我的应用程序时,鼠标和键盘不工作。通过搜索这个问题,我了解到在启动应用程序之前我们需要 运行 下面的命令:

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

运行执行上述命令后,我可以在我的应用程序中使用鼠标和键盘。但这看起来有点奇怪,因为每当我需要 运行 我的应用程序时,我都必须 运行 这些命令。此外,我将在启动后将我的应用程序设置为自动 运行,因此在这种情况下我将无法 运行 这些命令。所以我想知道我是否可以在我的代码中的某个地方包含这些命令,以便它们自动 运行 然后应用程序启动。谁能在这里指导我。请帮忙。谢谢

您可以 运行 一个脚本来代替 运行 应用程序:

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

您还可以在启动 Qt 之前在应用程序内部设置环境变量。使用 setenv:

#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 将覆盖内部默认值,因为 override 参数设置为零。这是期望的行为。