我正在编写一个c ++应用程序,该应用程序在某个时候创建一个GTK3窗口,同时还在其他地方运行X11代码。
对于纯X11零件,我正在使用XOpenDisplay()
打开显示屏。
运行X11部件并随后打开GTK窗口即可正常工作。多次运行X11部件也没问题,因为我使用XCloseDisplay
释放了显示器。
当gtk初始化之后(更具体地说,在gtk初始化之后调用XOpenDisplay()
),我尝试运行X11代码 时,会遇到我面临的问题。
我怀疑在运行gtk_init()
之后,即使在gtk_main_quit()
之后,显示器也永远不会释放。
我没有在gtk3文档中找到任何有关反初始化的信息。有什么方法可以适当地初始化gtk或以其他方式释放显示吗?
答案 0 :(得分:0)
解决方案完全无关。我无意中两次设置了DISPLAY
环境变量。显然gtk可以解决这个问题,但是XOpenDisplay
崩溃了。
我添加了一个仅设置一次的测试,现在一切正常。也许gtk在gtk_main_quit()