首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将GTK Widget嵌入Qt窗口

将GTK Widget嵌入Qt窗口
EN

Stack Overflow用户
提问于 2013-06-04 13:46:18
回答 3查看 2.2K关注 0票数 2

我需要为Windows、Linux和Mac开发一个应用程序。为了不必自己编写所有窗口,我选择使用Qt5 (通过wxWidgets,因为后者没有预编译二进制文件)。我有一个GTK ( Cef),现在我需要嵌入它,但遗憾的是我不知道该如何嵌入。

在Qt的早期版本中似乎已经有了QX11EmbedContainer,但是它已经不存在了,而且当切换到Weyland时,我也不确定这是否有效。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-04 13:57:37

如果您只需要一个嵌入式浏览器,可以尝试QT WebKit。

http://qt-project.org/doc/qt-5.0/qtwebkit/qtwebkit-index.html

票数 1
EN

Stack Overflow用户

发布于 2018-11-06 01:12:17

代码语言:javascript
复制
    QMainWindow* main_window = new QMainWindow;
    QX11EmbedContainer* container = new QX11EmbedContainer;
    main_window->setCentralWidget(container);

    //gtk code
    GtkWidget* window;
    GtkWidget* button;
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    button = gtk_button_new ();
    gtk_widget_show (button);
    gtk_container_add (GTK_CONTAINER (window), button);
    gtk_widget_show(window);
    XID id = GDK_WINDOW_XWINDOW (GTK_WIDGET(window)->window);

    container->embedClient(id);

您可以在QX11EmbedContainer上使用Qt4类。

票数 1
EN

Stack Overflow用户

发布于 2020-07-28 21:06:35

已经七年了,但我以前已经处理过了。这是我发现的1

我找到了一种在Qt窗口中正确嵌入CEF的方法:将它嵌入到一个空的QWindow中而不是一个QWidget中。不过,也有一些注意事项:

  1. 要将CEF窗口添加到QWidget布局中,您需要使用QWidget::createWindowContainer()
  2. 一个空的QWindow不会呈现任何东西--甚至不是背景。因此,您可能需要使用QBackingStore来使它在没有嵌入CEF时呈现某些内容--请参阅Raster窗口示例以获得一些参考。
  3. 在将winId添加到小部件的布局中之前,您可能需要使用QWindow。

我强烈建议任何仍在尝试这样做的人查看整个线程1。QtWebkit不再是一个可接受的解决方案,而CEF则是一个核心解决方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16919563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档