是否可以使用Qt创建Web应用程序?

时间:2011-08-03 08:45:54

标签: qt web

如何使用Qt创建Web应用程序?请指教。请举一个小例子。

5 个答案:

答案 0 :(得分:27)

这取决于“网络应用程序”的含义。如果你的意思是一个应用程序可以在其界面中将网页的某些部分显示为呈现的HTML,就像浏览器一样......是的。 Qt包含了一个名为QtWebKit的东西:

http://doc.qt.io/qt-5/qtwebkit-index.html

(注意:回到过去,微软 - 我认为 - 他们首先制作了一个可嵌入的Internet Explorer控件,以便您可以在某些MFC或VB应用程序中获取URL并运行基于其他形式的应用程序中的浏览器。微软解决方案的事件挂钩,Qt更好。)

无论如何,如果您希望人们在他们的计算机上安装您的应用程序,它可以获取Web数据,但利用本机功能比浏览器更丰富,这是非常好的。但要小心,因为这些天本地应用程序必须真正突出,以超越在他们已有的浏览器中运行的东西的优势。

HOWEVER 如果您尝试使用QtCore推送服务器端内容并完成网络请求,那将是一场艰苦的战斗。如果你看起来足够努力,你可能会发现一些相关的例子:

https://web.archive.org/web/20100922075100/http://labs.qt.nokia.com/2006/12/20/whats-this-cgi/

很少有人使用C ++(更不用说Qt)来生成服务器端的网页。然而,仍有一些正在做这件事,即使是以非常酷的方式:

http://www.webtoolkit.eu/wt

......无论如何,QtCreator将无助于这种追求。

答案 1 :(得分:6)

Qt本身并不存在您要求的功能。但是,存在(至少)一个第三方库,允许桌面应用程序的某些Qt代码在某种程度上重新用于提供Web应用程序:

http://cutelyst.org/

但是,这并不奇怪地允许您使用QML Widgets编写QML界面,并且可以通过Web浏览器访问可视界面。

答案 2 :(得分:3)

“网络应用程序”是什么意思?它是具有网络功能的桌面应用程序吗?如果是这样,是的Qt一般来说非常好。

如果你的意思是一种输出HTML的服务器,那么你应该使用别的东西,因为你必须重新发明许多轮子才能使它工作。

答案 3 :(得分:2)

您需要运行或嵌入Web服务器。转向Apache Web Server或基于Apache Tomcat的方法会更加谨慎。除此之外,你可能会遇到困难。

答案 4 :(得分:1)

还要考虑使用某些HTTP服务器库,如libonionWt。这与Qt的精神紧密相关。但是,您不会使用Qt本身。 libonion是较低级别(您可能希望使用浏览器端Web frameworks,例如JQueryAngularJS

如果您已经有一些Web服务器,可以考虑在C ++中开发一些FastCGI应用程序。

您肯定需要很好地理解HTTP协议和HTML5& AJAX