是否有可能获得 Qt 使用的 X11 文件描述符,以便我可以对其执行 poll()?

Is it possible to get the X11 file descriptor that Qt uses so I can do a poll() on it?

我正在寻找 X11 文件描述符,我想将其添加到 poll() 的连接列表中。我已经有一个工作正常的等待循环,但在另一个应用程序中,我还需要一些 Qt windows 和小部件。

如果我要用我自己的 X 编程 windows 我将只使用连接到 X11 时获得的文件描述符。

Display *d = XOpenDisplay(getenv("DISPLAY"));
int fd = XConnectionNumber(d);
// add fd as one of the file descriptors to listen to in my poll()

有没有办法从 Qt 检索该文件描述符? (我知道它将特定于 X-Windows)

对于那些感兴趣的人,我现有的 poll() 循环的源代码在这里:

https://github.com/m2osw/snapwebsites/blob/470847e384a4299c4d0cfe907e68cb323194ccd0/libsnapwebsites/src/snapwebsites/snap_communicator.cpp

QX11Info::display() 会给你显示,然后我想你可以像你的例子一样使用 XConnectionNumber() 。如果 Qt 的事件循环不是 运行 节目,我不确定 Qt 的工作效果如何,但值得一试。