Я не думаю, что есть простой способ получить то, что вы ищете.
Я не знаком с Qt, усилением или характером вашего проекта, но вы можете "преобразовать" существующий Xlib соединение с соединением xcb. Таким образом, вы можете смешивать вызовы Xlib и XCB.
Только один из Xlib и XCB может управлять очередью событий. По умолчанию это делает Xlib. Чтобы изменить это, вызовите XSetEventQueueOwner() (из "Xlib-xcb.h") перед выполнением других вызовов.
В идеале вы могли бы изначально создать объект Xlib Display, создать соответствующий xcb_display, использовать первый для Qt и опросить/подождать последний и передать ему усиление
Следует отметить, что вы можете конвертировать только одним способом.
Как получить объект Display с помощью объекта xcb_connection_t? Вы не можете.
Если этого решения недостаточно. Я не знаю хорошего способа решить вашу проблему. С другой стороны, события Xlib и xcb более или менее эквивалентны, поэтому ручное преобразование не будет слишком сложным (размеры по крайней мере некоторых событий различаются, поэтому прямого приведения будет недостаточно).
ИЗМЕНИТЬ
Я полагаю, что у кого-то был похожий вопрос несколько лет назад. По-видимому, Display *display = QX11Info::display();
это то, что вы можете сделать
person
TAAPSogeking
schedule
23.07.2018