Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 尝试在Ubuntu Linux中构建全局键盘挂钩时出错_C++_Linux_X11 - Fatal编程技术网

C++ 尝试在Ubuntu Linux中构建全局键盘挂钩时出错

C++ 尝试在Ubuntu Linux中构建全局键盘挂钩时出错,c++,linux,x11,C++,Linux,X11,我正在开发一个代码来获取按键和释放事件中的键盘输入,但是当我运行程序时什么都没有发生,我的代码有什么问题吗?如何获得按下的按键值 void hook() { forever { XEvent event; Display *dpy = XOpenDisplay(NULL); XNextEvent(dpy, &event); switch (event.type) { case

我正在开发一个代码来获取按键和释放事件中的键盘输入,但是当我运行程序时什么都没有发生,我的代码有什么问题吗?如何获得按下的按键值

void hook()
{
    forever
    {
        XEvent event;
        Display *dpy = XOpenDisplay(NULL);
        XNextEvent(dpy, &event);
        switch (event.type)
        {
        case KeyPress:
            qDebug() << "keypress";
            break;
        case KeyRelease:
            qDebug() << "keyrelease";
            break;
        }
    }
}
void hook()
{
永远
{
XEvent事件;
Display*dpy=XOpenDisplay(空);
XNextEvent(dpy和事件);
开关(事件类型)
{
外壳按键:
qDebug()了解更多信息。如果某些X11窗口在其中设置了一些
KeyPressMask
keypreleasemak
位,则只能从该窗口中获取。该窗口应为
InputOnly
InputOutput

显然,您正在使用Qt(这是一个好主意)。然后,继续使用Qt事件

(如果要捕获所有X11键事件,请使用显示器的根窗口。但这样做会干扰窗口管理器,这是一个坏主意;了解有关和的更多信息)

另外,在终端中运行
xev
,以了解有关X11事件的更多信息