【发布时间】:2011-08-03 08:45:53
【问题描述】:
如何使用 Qt 创建 Web 应用程序?
【问题讨论】:
标签: qt
如何使用 Qt 创建 Web 应用程序?
【问题讨论】:
标签: qt
这取决于您所说的“网络应用程序”是什么意思。如果您的意思是一个应用程序可以在其界面中将网页的某些部分显示为呈现的 HTML,就像浏览器可以...是的。 Qt 包含了一个叫做 QtWebKit 的东西:
http://doc.qt.io/qt-5/qtwebkit-index.html
(注意:在过去,微软——我认为——首先制作了一个可嵌入的 Internet Explorer 控件,以便您可以将 URL 获取到某些 MFC 或 VB 应用程序中并运行浏览器在基于表单的应用程序中。微软解决方案的事件挂钩很糟糕,Qt 更好。)
无论如何,如果您希望人们将您的应用程序安装在他们的机器上,这非常棒,它可以获取 Web 数据,但利用原生功能比浏览器更丰富。但要小心,因为现在原生应用程序必须真正非常出色,才能超越在他们已经拥有的浏览器中运行的东西的优势。
但是如果您尝试使用 QtCore 将服务器端内容推送出去并满足 Web 请求,那将是一场艰苦的战斗。如果你足够努力,你可能会找到一些相关的例子:
https://web.archive.org/web/20100922075100/http://labs.qt.nokia.com/2006/12/20/whats-this-cgi/
很少有人使用 C++(更不用说 Qt)在服务器端生成网页。然而仍然有一些在这样做,即使是以非常酷的方式:
...无论如何,QtCreator 对这种追求毫无帮助。
【讨论】:
您要求的功能在 Qt 本身中不存在。但是,存在(至少)一个第三方库,允许桌面应用程序的一些 Qt 代码在一定程度上被重用于提供 Web 应用程序:
但是,这并不能神奇地让您使用 QML Widgets 编写 QML 界面并拥有可通过 Web 浏览器访问的可视界面。
【讨论】:
您所说的“网络应用程序”是什么意思?它是具有网络功能的桌面应用程序吗?如果是这样,是的,一般来说 Qt 非常适合。
如果您指的是一种输出 HTML 的服务器,那么您应该使用其他东西,因为您必须重新发明许多轮子才能使其正常工作。
【讨论】:
您需要运行或嵌入网络服务器。转向基于 Apache Web 服务器或 Apache Tomcat 的方法会更明智。否则你会遇到一些困难。
【讨论】: