是否有支持嵌入HTML页面的跨OS GUI框架?

我想开发一个跨系统使用的桌面应用程序(win,mac,linux),是否有一个GUI框架可以让我为所有3个平台编写一次代码并拥有一个完全可脚本化的嵌入式Web组件?

我需要它有一个API来在应用程序和网页javascript之间进行通信。

我知道C#,JavaScript和一点python。

Qt在QWebView上有这样的东西。

TideSDK也正式名为Titanium。 这提供了一个WebKit HTML / JavaScript小部件,可以完成您想要的所有操作,包括运行Chrome开发人员工具。


编辑如下。 通过TideSDK开发人员的反馈整合我的更新:

TideSDK ,以前称为Titanium Desktop,是一个开源软件开发工具包,用于使用HTML5,CSS3,JavaScript和其他常用脚本语言创建多平台桌面应用程序。 该项目由Github托管。 主网站拥有全面的文档,并拥有一个活跃的开发人员社区。 成千上万的开发人员使用以前的Titanium Desktop开发桌面应用程序。 也许最受认可的应用程序是Wunderlist

TideSDK允许您使用Web开发技能创建桌面应用程序并提供各种特权API。 您可以使用python,php或ruby中的成熟库轻松扩展应用程序的function。

TideSDK的核心是编译到WebKit组件中的对象桥。 该桥允许其他脚本语言 – python,php或ruby – 使用DOM中的脚本标记在HTML页面上运行,就像JavaScript一样。 您也可以直接从应用程序中调用.py,.rb或.php文件。

TideSDK只能使用基本的文本编辑器 – 它不需要任何特殊工具或IDE,尽管许多开发人员更喜欢更丰富的工具。 TideSDK包括用于在本地运行应用程序(用于开发和调试)的命令行工具,以及将其打包到您正在开发的操作系统的安装程序(支持Windows,Mac OSX和Linux)。 为了获得所有需要的安装程序,典型的TideSDK开发环境将包括每个操作系统的物理或虚拟机。 TideSDK团队正在寻求尽快实施一种不同的更好的方法。

TideSDK团队目前正在开发TideSDK Builder应用程序。 它将提供用于创建,运行和打包TideSDK应用程序的GUI。 为了让开发人员更快地开始,TideSDK Builder引入了一项新function – Scaffolds。 Scaffolds生成所有锅炉板以实例化具有特定开发模式的项目,例如Backbone MVC。 开发人员可以使用TideSDK Builder来创建,导入和共享脚手架。

TideSDK的路线图包括CommonJS for 1.4的实现,旨在为开发人员提供使用JavaScript的更加模块化的开发体验。

你好,世界

TideSDK项目由一些样板代码和一个包含核心项目文件的Resources文件夹组成。 以下说明了将在所有支持的平台上运行的简单hello world应用程序的结构:

├── CHANGELOG.txt ├── LICENSE.txt ├── README.md ├── Resources │ ├── app.js │ ├── default_app_logo.png │ └── index.html ├── manifest └── tiapp.xml 

清单包含有关项目使用的运行时模块的信息。 tiapp.xml提供配置,default_app_logo.png是默认显示在Dock,系统托盘或应用程序窗口中的图像。

以下是hello world示例的app.js文件的内容(因为它将出现在TideSDK 1.3.0中)。 以前的版本将使用已停产的Titanium命名空间。

 // create and set menu var menu = Ti.UI.createMenu(), fileItem = Ti.UI.createMenuItem('File'), exitItem = fileItem.addItem('Exit', function() { if (confirm('Are you sure you want to quit?')) { Ti.App.exit(); } }); menu.appendItem(fileItem); Ti.UI.setMenu(menu); 

这是同一个应用程序的HTML。 它调用上面的脚本。

    Hello World    

Hello World

在少于10行的JavaScript代码中,我们创建一个菜单,添加“文件”和“退出”菜单项,并将其设置为主窗口。 一个简单的回调方法用于弹出一个退出确认对话框。 如果用户确认,则应用将退出。

背景

Titanium由Appcelerator开发,并在Apache 2许可下提供。 最初Appcelerator提供了开源Titanium Developer来创建项目。 后来,Appcelerator推出了封闭源码Titanium Studio,这是一款位于Aptana之上的IDE。 虽然目前仍有可能在Titanium Studio中开发TideSDK,但未来可能还需要一个插件。 [安德鲁:对不起,我不清楚这一点。 Titanium Studio的插件? 还是Aptana? 还是TideSDK?]

Appcelerator提供了一个TiStudio SDK供我们使用,可以帮助我们创建TiStudio插件,以便通过TiStudio使用TideSDK

如上所述,TideSDK( http://www.tidesdk.org/ )是一个选项(对我来说现在更好)你也可以采用相同的想法XUL Runner( https://developer.mozilla.org/en) -US / docs / XULRunner ),Adobe AIR( http://www.adobe.com/devnet/air/air-sdk-download.html )(此处: http : //www.adobe.com/devnet/air。除了flash和Dreamweaver,AppJS( http://appjs.org/ )或Node Qt( https://github.com/arturadib/node-qt )之外, html是以“如何”的方式进行更多工作的教程有cef( http://code.google.com/p/chromiumembedded/ ),berkelium( http://berkelium.org/ ),awesomium( http://awesomium.com )或如何将firefox嵌入到GUI应用程序?它说明了如何在应用程序中嵌入gecko(firefox的引擎)。

好的,现在我对所有人的看法:第一个选项将为您提供更好的方式,因为它们基本上是一个跨平台工作的“浏览器”,您将部署一个html + js + css应用程序(带有空气可以部署闪存) /动作脚本应用程序); 您需要构建应用程序然后将“浏览器”放入其中的其他选项,它提供了更大的灵活性,但可能适得其反。

我对所有人的体验是:tidesdk – 很好但稳定但仍在增长,所以一些高级function可能会丢失,但是你可以编译它并且开发团队非常活跃

xulrunner – 稳定,不可能做复杂的事情,你需要一个良好的C知识来制作自己的组件,因为它只为你提供基本的东西。 它在你能做的事情上非常灵活,但内容结构严格,你的应用程序不会运行,除非它以这种方式组织,并且在我看来有一个丑陋的语法(笑),它是java和javascript样式的混合编程

adobe air – 易于使用和部署,但闪光灯给我带来了未经优化的东西的奇怪的瘙痒感觉

appjs – 是nodejs,示例有效,我无法运行我的自定义应用程序,我认为它还没有改进,它对我来说是有用的,以一种古怪的方式

nodeqt – 是qt + nodejs,你需要编译自己的qt版本,我还没有测试但看起来很简单

其他嵌入方式 – 没有测试,看起来很好,但我不知道,可能是无所事事

那么使用Chromium Embedded Framework呢 ?

它是开源的(BSD许可证),并附带C,C ++,.NET( 1或2 ), Java ,Delphi和Python的绑定。

这个.NET绑定也与Mono完全兼容,这将有助于拥有一个跨平台的应用程序。

注意:在另一个答案中提到的AppJS是在CEF之上构建的(使用node.js )。

我要扔掉这个:

AppJS: http ://appjs.org/

wxWidgets也是。

PS: Qt对于跨平台GUI目的更感兴趣。

由于我的第一个答案是wxWidgets,你觉得Qt不适合你……
你提到的不是 javascript – 注意PyQt为Qt 2和Qt 3提供[python]绑定 ”。 PySide是诺基亚针对Qt的官方Python绑定。 “PyQt vs PySide”搜索提供了有趣的结果:

  • 在SO: https : //stackoverflow.com/questions/1297660/pyside-vs-pyqt
  • 一些技术差异
  • PyQt与PySide比较
  • PyQt或PySide – 使用哪一个

还有PythonQt,但我根本没有研究过它。

仅供参考,

  • Qt网络示例
  • Qt WebKit示例 :

    Qt提供了一个基于WebKit的集成Web浏览器组件,WebKit是流行的开源浏览器引擎。

    这些示例和演示展示了WebKit的一系列不同用途,从在Qt用户界面中显示Web页面到基本functionWeb浏览器的实现。

  • Qt还支持C#
  • 和许多其他语言 。
  • KDE (Linux桌面环境)使用和开发Qt

任何关于Qt的具体信息都会使它“不适合你”吗?

Mono和WinForms出了什么问题

  1. Qt不适合你,这很奇怪。 您可能会惊讶地发现Sencha的Architect和Animator产品使用Qt和QWebView进行跨平台JavaScript应用程序,包括完整的菜单和图标以及可执行文件和系统对话框以及文件I / O.

    它目前适用于Windows,OSX和Linux。

    他们使用一个名为ion的内部开发库来加载和交互JavaScript应用程序。 它们为JS提供了一些帮助类。

    一个简单的骨架c ++应用程序,它使用Qt创建和加载窗口并在该窗口中创建Web视图,并将文件中的html和其他内容加载到该视图中。

  2. 另一个解决方案是Adobe的Air,就像一个支持原生的浏览器。 它还提供部署。