我需要检查X会话是否已经根据该值返回一个值,因此我的应用程序可以决定创建窗口。
在Gtk + 2中gtk_init_check
,如果无法连接到X会话,则返回-1。
Qt的等价物是什么?
答案 0 :(得分:1)
据我所知,Qt并不是那样的。你要么
具有默认X子系统(xcb)的QGuiApplication将从libqxcb发出错误QXcbConnection: Could not connect to display
并发出SIGABRT
。如果您尝试使用不同的模块,例如offscreen
使用类似构造,
your_application --platform offscreen
然后GUI应用程序将启动,但您不再连接到X.如果您希望获得X会话信息,请查看X11Extras模块,
http://doc.qt.io/qt-5/qx11info.html
请记住,如果您使用的是QCoreApplication或未连接到X,则会因为您未连接到X服务器而返回nullptr
以获取X连接信息。
答案 1 :(得分:1)
在the other answer提及QGuiApplication
并假设Linux + X11的补充中,您可以在实践中简单地测试getenv("DISPLAY")
返回非空字符串。您也可以 - 而是 - 使用XOpenDisplay(后跟XCloseDisplay
)