User interface GUI应用程序中的Web技术

User interface GUI应用程序中的Web技术,user-interface,qtwebkit,User Interface,Qtwebkit,您在使用web技术(HTML、XML、CSS、JavaScript)实现GUI应用程序的部分功能方面有何经验?赞成和反对 没有用于会话管理的服务器、关系数据库、AJAX或Cookie,也没有现有的webapp,而是一个GUI应用程序,它使用web小部件(如)呈现和处理UI的大部分,同时利用GUI框架实现更丰富的交互和更好的桌面集成 我已经用PyQt验证了这种方法的可行性。内容可以从文件系统或字符串呈现,URL请求(图像或单击)可以由表单的事件处理程序捕获和提供。支持CSS和JavaScript,

您在使用web技术(HTML、XML、CSS、JavaScript)实现GUI应用程序的部分功能方面有何经验?赞成和反对

没有用于会话管理的服务器、关系数据库、AJAX或Cookie,也没有现有的webapp,而是一个GUI应用程序,它使用web小部件(如)呈现和处理UI的大部分,同时利用GUI框架实现更丰富的交互和更好的桌面集成

我已经用PyQt验证了这种方法的可行性。内容可以从文件系统或字符串呈现,URL请求(图像或单击)可以由表单的事件处理程序捕获和提供。支持CSS和JavaScript,可能有一些限制

        # ...
        self.webView.page().setLinkDelegationPolicy(
            QtWebKit.QWebPage.DelegateExternalLinks
            )
        #... 

class TotiMainWindow(QtGui.QMainWindow):
    def linkClicked(self, url):
        pass # events arrive here
注意:这个问题与以前不同,因为GUI上没有使用web技术的要求,但要求应用程序在没有可用网络连接的情况下工作,并且应在不同平台上与默认桌面很好地集成,没有以前的基础架构需求(没有.NET、Java、浏览器或数据库服务器)

注意:我在PMS上发布了这个问题的另一个版本,但在那里发现很少有使用这种方法的经验

闭幕词
我只是在一系列的信息中找到了我想要的大部分信息。

我认为使用HTML/CSS等web标记和其他web技术的最大优势是桌面应用程序的日子可能已经不多了

正如我们所说,谷歌工程师正在开发Chromium操作系统,它基本上由一个GUI应用程序组成。。。浏览器

现在,虽然实际上可能永远不会有任何结果,但通过web浏览器访问的应用程序数量明显呈上升趋势,可以在任何地方访问。在我看来,这是应用程序开发的未来

通过使用这些技术,当您决定您的应用程序应作为web应用程序提供时,您所要处理的问题就少了

更新:几年前,我们为呼叫中心开发了一个代理桌面,它本质上是一个本地应用程序,可以打开套接字与电话系统集成。代理使用的用户界面是用HTML、CSS和JavaScript构建的,体验令人惊叹。当我们在2010年发布了最新的更新,并对CSS进行了专业的重新设计时,我们的代理都对它的交互和使用都留下了深刻的印象


在未来,我们将100%地将其移植到浏览器,但目前它需要是一个本地应用程序,因为COM与电话系统集成。

在2005年类似的情况下,我使用XForms、CSS、JavaScript、XML和XML模式创建了一个独立的webapp,用于离线数据检索和验证。有了一个很好的XForms->HTML+JS transformer(Chiba),它在最初发布后就完成了这项工作,没有任何bug修复。大约有十几名工程师在大型强子对撞机的风洞中收集测试数据,他们使用了6-12个月(IIRC)。该项目最大的惊喜是,当你使用网络平台时,即使是离线使用,你也能免费获得多少。强烈推荐。

主要问题是它会降低开发速度或用户界面的质量。很多除非你使用Seaside,否则开发桌面应用程序要快得多

有相当多的应用程序构建在Mozilla平台之上。它不是100%的web技术,因为您使用的不是基于XML的HTML,而是web堆栈(JavaScript、CSS)。其中最成功的是it,它是商业大哥


另一方面,就Qt而言,最新版本4.7可以使用语言构建GUI。不要让名称误导你,它不是标记,它实际上是带有特定于应用程序的扩展的JavaScript。

我们在Windows XP还是新版本时正是为一个项目这么做的

这给了我的团队几个好处:

  • 一个漂亮的用户界面,花费相对较少的精力
  • 使用CSS以一致的方式轻松更改UI样式
  • 与C++的简单集成(从UI调用函数,反之亦然)
我们看到的缺点是:

  • 一些不太好的防火墙将访问内部资源(即ui中的其他html页面)视为web请求
  • 在某些情况下,添加和访问所需的资源可能有点麻烦
  • 在Internet Explorer中设置属性可能会阻止JS在应用程序中运行
请注意,某些Windows XP:s程序正在使用这种方法

这可能最适用于小的、更像向导的ui部分(我们的ui几乎完全由这些部分组成)


从那时起,我就没有真正参与过ui项目,所以我无法真正告诉您这种方法是否仍然有效。。。我知道基于MFC的应用程序将允许您使用基于HTML的对话框。

我同意。我认为这不是一个原创的想法。这就是为什么我要求在要求范围内提供经验和建议。PMS的一些人提到,在他的经验中,用户会对GUI应用程序中类似web的行为感到失望,但我自己的经验是,用户太习惯于web和PAD,以至于他们发现传统GUI中的UI标准很麻烦。再补充一下。。。当你说。。。“用户对Web和PAD已经习以为常,以至于他们发现传统GUI中的UI标准很麻烦”。问题是,人们已经习惯了100%能够为手头的任务量身定制的体验,而传统的基于表单的交互只走了这么远,并不能像web那样满足用户