Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在非qt windows应用程序中嵌入qtwebkit?_Qt_Browser_Webkit_Embed - Fatal编程技术网

如何在非qt windows应用程序中嵌入qtwebkit?

如何在非qt windows应用程序中嵌入qtwebkit?,qt,browser,webkit,embed,Qt,Browser,Webkit,Embed,我想在纯c windows GUI应用程序中嵌入qtwebkit 有没有关于如何做到这一点的示例和示例代码,或者这是不可能的?我知道在QT应用程序中很容易做到,但我想让我的开发保持在C(可以用免费的C编译器编译) (在谷歌搜索了几天,没有任何运气)。从QT4开始,所有小部件都需要一个已初始化并正在运行的QApplication对象,该对象将调度操作系统事件和保持QT小部件运行所需的QT事件 看起来有可能创建一个自定义子类QApplication,该子类将被实例化(为了QWebKit或其他小部件)

我想在纯c windows GUI应用程序中嵌入qtwebkit

有没有关于如何做到这一点的示例和示例代码,或者这是不可能的?我知道在QT应用程序中很容易做到,但我想让我的开发保持在C(可以用免费的C编译器编译)


(在谷歌搜索了几天,没有任何运气)。

从QT4开始,所有小部件都需要一个已初始化并正在运行的QApplication对象,该对象将调度操作系统事件和保持QT小部件运行所需的QT事件

看起来有可能创建一个自定义子类QApplication,该子类将被实例化(为了QWebKit或其他小部件),以使单例存在,然后从应用程序消息循环调用它——或者甚至可能只是一个发送到窗口的计时器——并让它分派它已排队的任何QEvent


我没有尝试过,但我也有类似的需求,需要在现有的windows应用程序中使用WebKit,它似乎是QWebKit,或者使用ActiveQt构建自己的ActiveX控件。这很容易。然后嵌入它。Qt甚至知道如何将IDispatch对象拉入其元对象系统,从而使您能够将它们公开到javascript上下文中。它真的很光滑


我在目前的项目中正是这样做的。我会尝试将其开源,以节省其他人的工作,但这是不可能被允许的

是的……在我看来,wxwidgets绝对比QT好。wxWebConnect嵌入gecko浏览器控件非常好

一定要试试

如果您想知道我正在做什么项目,请在(不使用服务器包如UNISEVER、WAMP等的程序中运行PHP页)检查它。 它是纯C的web浏览器,用过什么WebKit(不是QtWebKit)
也许,这对你有帮助)

这就是我试图做的……看看这个:(注意我不是一个好的程序员:-(你在论坛帖子中的问题很简单-QWinWidget没有setCentralWidget方法。QWinWidget唯一的好处就是成为另一个小部件的父部件。所以,QWinWidget*win=new QWinWidget(父级);QWebView*web=新的QWebView(win);应该让您的webview托管在windows窗口中好的,我这样做了,但现在的问题是,因为我正在创建一个小部件,我需要在DLL中创建一个QApplication实例。问题是它会阻止windows主机应用程序工作,因为QApplication会启动自己的消息循环。有帮助吗?谢谢。这是最困难的部分幸运的是:您需要查看QApplication,可能会创建一个从QApplication派生的QModelessApplication,该QApplication没有run方法,但有callmeFrequency()方法,您可以频繁调用该方法来执行QApplication::run的内部循环逻辑,以确保QT事件被调度。我还没有这样做。我仍然希望在没有QT的情况下WebKit能够正常工作。因此,我无法评论要做到正确有多困难。以及这样做是否会使您遵守lgpl条款。我明白了…这就是为什么使用webkit“简单方法”的例子不多的原因…哦,好吧,我会让其他人想出一个解决方案…谢谢你的帮助克里斯。我很确定你是说使用activeQT你可以嵌入Microsoft Internet Explorer?对吗?不,谢谢。这意味着IE必须安装在用户计算机上,或者用户必须安装。通过wxWebConnect,你可以分发整个gecko软件包而且它不需要安装!!是的,这很好,但它远不如wxWebConnect控件稳定。例如,尝试在midori中打开gmail或youtube。。。。