在Linux上通过插件将Qt窗口embedded到Firefox中

所以这是我试图完成的一个微不足道的例子:

使用QX11EmbedContainer和QX11EmbedWidget,我可以创build两个独立的应用程序,从一个embedded到另一个(容器< – widget)的窗口中。 我想在Firefox中做同样的事情,并将小部件embedded到插件中。

所以我创build了一个基本的插件,它只包含QX11EmbedContainer(从“简单”的qtbrowserplugin示例开始),仅用于testing目的,另一个通用的小部件。

结果是通用小部件在插件内部显示得很好,但容器小部件“popup”到一个单独的窗口。

这发生在Firefox,Chrome甚至Konqueror下。

所以问题是 – 是否可以将外部Qt小部件embedded到插件中?

答案是肯定的,但Qt代码是错误的,这就是为什么我不包括它 – 你不会想要它。 管理(在奇趣工程师的帮助下)插入一个香草QTextEdit小部件。 试图输入文字时,插件会崩溃,经常采取Firefox。 很明显,将Qt对象直接嵌入到插件中是不行的。

我也试着用mozplugger单独启动它,但是这有它自己的问题 – 主要是焦点没有正确的跟踪,并且经常会丢失,需要你重新启动插件才能恢复。