GUI 应用程序中的 Web 技术

2024-03-21

您在使用 Web 技术(HTML、XML、CSS、JavaScript)实现 GUI 应用程序的部分功能方面有什么经验?优点和缺点,请说一下。

没有服务器、关系数据库、AJAX 或用于会话管理的 cookie,也没有现有的 Web 应用程序,而是使用 Web 小部件的 GUI 应用程序(例如Qt WebKit http://doc.qt.nokia.com/4.7-snapshot/qtwebkit.html)来渲染和处理 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

注意:这个问题不同于this one https://stackoverflow.com/questions/2351330/what-approach-can-i-take-to-developing-a-desktop-application-using-web-technologi and this one https://stackoverflow.com/questions/1196233/net-webbrowser-control-as-user-interface之前制作的,除其他外,因为不需要在 GUI 上使用 Web 技术,但要求应用程序应该在没有可用网络连接的情况下工作,并且应该与不同平台上的默认桌面良好集成,而不需要以前的基础设施要求(无 .NET、Java、浏览器或数据库服务器)。

注意:我在 PMS 上发布了这个问题的不同版本,但发现很少有这种方法的经验。

结束语

我刚刚在一系列中找到了我要寻找的大部分信息安德烈·帕雷 (André Pareis) 的博客文章 http://www.pareis.com/2010/04/22/why-i-completely-dropped-qt-and-qtwebkit-from-my-hybrid-app/.


我认为使用 HTML/CSS 等网络标记和其他网络技术的最大优势是桌面应用程序的日子可能已经屈指可数了。

就在我们说话的时候,谷歌工程师正在开发 Chromium 操作系统,它本质上由一个 GUI 应用程序组成……浏览器……

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

通过使用这些技术,当您确定您的应用程序应该作为 Web 应用程序提供时,这将成为您必须处理的一件麻烦事。

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GUI 应用程序中的 Web 技术 的相关文章

  • Tkinter 按钮在禁用和更新后仍然响应点击

    我希望按钮启动命令 然后在执行时禁用并在执行完成后再次启用 当我单击该按钮时 它似乎被禁用并且命令被执行 但是 当我在禁用按钮时单击该按钮时 该命令会在第一次执行完成后第二次执行 似乎在第二次单击后 该按钮确实被禁用了 因为我可以在禁用它时
  • 如何将基于 Qt4.6 Phonon 的媒体应用程序移植到 Qt 5.1?

    我有一个基于 Qt 4 6 的应用程序 它使用 QtWebView 加载带有标签的 HTML 页面 以便在 Windows 平台上播放网络多媒体源 我没有使用默认的 PHONON 播放引擎 而是构建了另一个 PHONON 后端引擎来处理媒体
  • 创建 QT 应用程序作为 Windows 上现有基于控制台的应用程序的 GUI

    我正在尝试使用 Qt 为现有应用程序设置一个 GUI 该应用程序旨在在 Windows 命令行中运行 这不仅仅是运行应用程序system 命令 但我需要通过命令行与现有应用程序交互 The system 当我启动现有的可执行文件时 命令会阻
  • 如何对很多很多页面进行页面导航?对数页面导航

    显示许多页面的页面导航的最佳方式是什么 最初这是作为操作提示发布的 我的答案包含在问题中 我现 在将我的答案分成下面的 答案 部分 更具体 假设您要向用户显示一组记录 这些记录分为固定大小的页面 例如 Google 搜索的结果 如果只有几个
  • 呈现模型与被动视图

    我想知道上述两种模式之间的区别 当您考虑到您需要在表示模型模式中同步代码并且该代码位于表示模型本身中时 那么我认为这些模式非常相似 两者都将事件委托给演示模型 演示者 演示模型和演示者命令域模型 并且也观察域模型 当发生更改时 它们都与视图
  • 如何使用 QWebElement 设置 input(type="file") 的值?

    我正在尝试将照片上传到vk com https vk com using QtWebKit https qt project org doc qt 4 8 qtwebkit html模块 我面临的问题是无法正确填写input type fi
  • 用户在对话框中输入

    python 中是否有任何库可用于图形用户输入 我知道关于tk但我相信需要一些代码才能做到这一点 我正在寻找最短的解决方案 a input Enter your string here 取而代之的是 我想要一个对话框 以便用户可以在那里输入
  • Karate UI 中的 ShadowRoot dom 元素访问问题

    我正在尝试访问 ShadowRoot dom 树元素 但我面临的问题是我无法使用特定的 html 元素来调用 ShadowRoot 因为该元素是动态的 请参见下面的 html 片段 id vaadin text field error 0
  • 自动化 Windows UI 测试方法

    我们正在寻求设置自动化 UI 测试 并想知道最好的方法是什么 潜在的陷阱是什么 设置费用是否昂贵 提前致谢 B 自动化测试最大的消耗可能是时间 有很多非常昂贵的工具 但也有免费的工具 即使是昂贵的工具的成本也不太可能与正确设置自动化测试所需
  • QWebView / Qt WebKit 不会打开某些 SSL 页面;不允许重定向?

    在带有 Visual C 2008 SP1 的 Windows 7 上全新安装 Qt SDK 1 1 4 我正在使用 Qt Creator 为什么此代码无法加载某些网页 include
  • 如何设置按钮的大小?

    我将按钮放在带有 GridLayout 的 JPane 中 然后我用 BoxLayout Y AXIS 将 JPanel 放入另一个 JPanel 中 我希望 GridLayout 中的按钮是方形的 我使用 tmp setSize 30 3
  • 创建一个覆盖视图以覆盖整个活动,包括协调器布局中的工具栏

    我想创建一种覆盖类型的布局 以显示在包括工具栏在内的活动上方 我无法使用任何库来执行此操作 因为我编写的所有内容都是自定义的 我可以通过使用以下代码直接将视图添加到装饰视图来实现它 ViewGroup vg ViewGroup getWin
  • 如何将一个窗格连接到另一个窗格

    如何将输出连接到paneWithList PaneWithList其上有一个监听器JList以便将所选行输出到控制台 我怎样才能将该输出定向到JTextPane关于输出 Could PaneWithList触发一个事件Main拿起 会属性更
  • ContentPane 和 JPanel 之间有什么关系?

    我发现了一个示例 其中将按钮添加到面板 实例JPanel 然后将面板添加到容器中 由getContentPane 然后容器通过构造被包含到JFrame 窗户 我尝试了两件事 我把容器扔掉了 更详细地说 我向面板添加了按钮 实例JPanel
  • 您知道 PAC 设计模式的任何示例吗?

    任何人都可以指出正在使用的任何网站或网络应用程序表现 抽象 控制 http www dossier andreas net software architecture pac html设计模式而不是MVC 像这样的桌面应用程序很容易找到 例
  • 如何使用 Tkinter 创建自动更新的 GUI?

    from Tkinter import import time Tkinter stuff class App object def init self self root Tk self labeltitle Label root tex
  • 在 GTK+ (gtkD) 中处理按键

    我正在玩gtkD http www dsource org projects gtkd GTK 的 D 绑定 我有一个window对象 实例gtk MainWindow 我想处理它的按键 How 如何处理特殊键 例如箭头键 pgup pgd
  • Windows 应用程序事实上的标准键盘快捷键列表?

    假设我正在为 Windows 开发一个新的桌面应用程序 是否有我可以查阅的所有 Windows 应用程序都应支持的键盘快捷键列表 来自 Microsoft 或第三方 注意 当我在这里说 所有 Windows 应用程序 时 我的真正意思是 特
  • 有没有办法在没有 QApplication::exec() 的情况下使用 Qt?

    有没有一种安全的方法可以在不调用 QApplication exec 的情况下使用 Qt 我有许多不同的对象正在对多个资源执行长期进程 至少其中一个正在与 Web 应用程序服务器进行通信 我正在制作一个 GUI 应用程序 提示用户在正确的时
  • 如何使用Python在没有窗口的情况下在屏幕上显示文本

    问题 我需要在没有窗口的情况下直接将文本写入屏幕 文本需要显示在所有其他窗口和全屏应用程序之上 并且不应以任何方式单击或交互 Example The text doesn t need to have a transparent backg

随机推荐