【问题标题】:Is it possible to create web application using Qt?是否可以使用 Qt 创建 Web 应用程序?
【发布时间】:2011-08-03 08:45:53
【问题描述】:

如何使用 Qt 创建 Web 应用程序?

【问题讨论】:

    标签: qt


    【解决方案1】:

    这取决于您所说的“网络应用程序”是什么意思。如果您的意思是一个应用程序可以在其界面中将网页的某些部分显示为呈现的 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)在服务器端生成网页。然而仍然有一些在这样做,即使是以非常酷的方式:

    http://www.webtoolkit.eu/wt

    ...无论如何,QtCreator 对这种追求毫无帮助。

    【讨论】:

      【解决方案2】:

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

      http://cutelyst.org/

      但是,这并不能神奇地让您使用 QML Widgets 编写 QML 界面并拥有可通过 Web 浏览器访问的可视界面。

      【讨论】:

        【解决方案3】:

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

        如果您指的是一种输出 HTML 的服务器,那么您应该使用其他东西,因为您必须重新发明许多轮子才能使其正常工作。

        【讨论】:

        • 我可以从 web 访问一个 qt 应用程序吗....我正在 Qt 中制作一个电影播放器​​。我想在 web 中执行这个应用程序。提前谢谢
        • 不,您不能在用户的浏览器中运行 Qt 视频播放器。您将不得不编写一个插件,但这又会重新发明轮子,并且(取决于您在做什么)用户不太可能安装该插件。您最好的选择是使用和修改一些现有的 Flash 视频播放器,例如 Fowplayer - flowplayer.org
        • 我想问你是否可以使用 qt 作为 php 开发网页。在此网页中,我想创建播放列表、解析 xml 等并编辑播放列表并播放电影... .我不知道我是否在问愚蠢....请给个建议...提前谢谢...
        • 如果问题是您是否可以使用 Qt Creator 开发 PHP 应用程序,那么答案是否定的。您只能在 Qt Creator 中使用 C++ 或 QML。否则,如果您正在寻找 PHP 绑定,也许您可​​以试试 PHP-Qt:ohloh.net/p/php-qt 它可以让您用 PHP 编写 Qt 应用程序。
        • @yamunamathew123 您可以使用 Qt 的非 GUI 部分来实现输出字符串(如 HTML/css/Javascript)的 Web 服务器。你不能设计一个 Qt GUI(not yet反正)并让它出现在 Web 浏览器中 - Web 浏览器显示 HTML,而不是 Qt GUI。
        【解决方案4】:

        您需要运行或嵌入网络服务器。转向基于 Apache Web 服务器或 Apache Tomcat 的方法会更明智。否则你会遇到一些困难。

        【讨论】:

          【解决方案5】:

          还可以考虑使用一些 HTTP 服务器库,例如 libonion 或 Wt。 Wt 在精神上与 Qt 很接近。但是,您不会使用 Qt 本身。 libonion 级别较低(您可能希望使用浏览器端的Web frameworks,例如JQuery 或AngularJS)。

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

          您肯定需要对HTTP 协议和HTML5 和AJAX 有很好的了解。

          【讨论】:

            猜你喜欢
            • 2017-03-03
            • 1970-01-01
            • 2021-01-19
            • 2017-11-26
            • 1970-01-01
            • 1970-01-01
            • 2017-01-22
            • 1970-01-01
            • 2011-05-01
            相关资源
            最近更新 更多