【问题标题】:Mix WxWidgets and GTK+混合 WxWidgets 和 GTK+
【发布时间】:2026-02-07 09:45:01
【问题描述】:

我想在 Linux 上用 GTK+ 编写一个 GUI,我想在其中嵌入一个用 WxWidgets 编写的 GUI 作为小部件。原因是我想使用其他人在 WxWidgets 中开发的 GUI 并添加自己的元素,但我对 GTK+ 更熟悉,不想学习新的工具包。

我熟悉并使用过使用 Xembed 协议的 GtkPlug/GtkSocket。我想知道 WxWidgets 中是否有类似的功能可以让我实现相同的功能?我假设我将在 Linux 上使用 wxGTK,因此可能有一种方法可以侵入底层 GTK 并使用 GtkSocket/Plug。任何其他方式来实现这一点也将不胜感激。

我尝试在网上查找该内容,但没有找到任何最近的文章对此进行解释。

谢谢!

【问题讨论】:

    标签: linux user-interface gtk wxwidgets


    【解决方案1】:

    应该可以为wxWindow 提供GtkPlug,但AFAIK 从来没有人这样做过。有从 wxWidgets 方面实现 GtkSocket 的补丁,但我认为这对您没有太大帮助。

    【讨论】:

    • 嗯,有一个wxWindow::GetHandle函数返回各种系统依赖的东西,其中wxGTK下的一个GtkWidget。我的猜测是,如果我尝试链接这两个库并在同一进程中运行它们,我应该能够从 Wx 中提取 Widget 并在 GTK 中对其进行操作。感谢您的建议。
    • 是的,您可以从wxWindow 获得GtkWidget*。但是您不应该直接操纵它,这有可能破坏该窗口行为。
    • 好吧,我就盗取它的 Xwindows ID。