【问题标题】:Propper way to deinitialize GTK初始化 GTK 的正确方法
【发布时间】:2019-10-03 23:06:50
【问题描述】:

我正在编写一个 C++ 应用程序,它会在某个时候创建​​一个 GTK3 窗口,同时还在其他地方运行 X11 代码。

对于纯 X11 部分,我使用 XOpenDisplay() 打开显示。

运行 X11 部分并随后打开 GTK 窗口可以正常工作。多次运行 X11 部件也没有问题,因为我使用 XCloseDisplay 释放了那里的显示。

当我尝试运行 X11 代码时会出现我面临的问题 gtk 已初始化(更具体地说,在 gtk 初始化后调用 XOpenDisplay())。

我怀疑在运行gtk_init() 之后显示永远不会被释放,即使在gtk_main_quit() 之后也是如此。

我在 gtk3 文档中没有找到任何关于取消初始化的信息。有没有办法正确地取消初始化 gtk 或以其他方式释放显示?

【问题讨论】:

    标签: c++ gtk x11


    【解决方案1】:

    解决方案完全不相关。我偶然设置了两次DISPLAY 环境变量。显然 gtk 可以处理这个问题,但 XOpenDisplay 崩溃了。

    我添加了一个测试,只设置一次,现在一切正常。也许 gtk 在gtk_main_quit() 之后会正确地取消初始化

    【讨论】:

      猜你喜欢
      • 2019-10-24
      • 2018-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-19
      • 2015-10-26
      • 1970-01-01
      • 2018-11-24
      相关资源
      最近更新 更多