是否有一个跨操作系统的GUI框架,支持嵌入HTML页面?(Is there a cross-OS G

2019-07-31 04:01发布

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

我需要它有一个API的应用程序和网页中的JavaScript之间进行通信。

我知道C#,JavaScript和Python中的一点点。

Answer 1:

Qt的有这样的事情QWebView 。



Answer 2:

还有TideSDK正式定名为钛。 这提供了WebKit的HTML / JavaScript的小部件,做你能想到的几乎所有,包括运行Chrome开发人员工具。


编辑下面。 巩固我与来自TideSDK开发人员的反馈更新:

TideSDK ,原钛桌面,是创建一个使用HTML5,CSS3,JavaScript和其他常见的脚本语言的多平台桌面应用程序的开放源代码软件开发工具包。 该项目托管在Github上 。 主要网站有全面的文档和主机活跃的开发者社区。 成千上万的开发人员使用前者钛桌面开发的应用deskop。 也许最被认可的应用程序是的Wunderlist

TideSDK允许你使用你的Web开发技术来创建桌面应用程序,并提供广泛的特权的API。 您可以使用Python和PHP和Ruby成熟库轻松地扩展您的应用程序的功能。

TideSDK的心脏是一个对象桥编译成WebKit的组成部分。 桥允许其他脚本语言 - Python和PHP和Ruby - 使用脚本标记DOM中的HTML页面上运行,如同JavaScript。 您也可以直接调用的.py,.RB或.php文件从你的应用程序中。

TideSDK可以用不超过一个基本的文本编辑器的更多使用 - 它不需要任何特殊的工具或IDE尽管许多开发者更喜欢更丰富的工具。 TideSDK包括命令行工具在本地运行应用程序(用于开发和调试),也将其打包成您所开发的操作系统的安装程序(在Windows,Mac OSX和Linux都支持)。 要获得所有所需的安装程序,一个典型的TideSDK开发环境包括每个操作系统的物理或虚拟机。 该TideSDK团队期待尽快实现不同的和更好的方式。

该TideSDK团队目前正在开发一个TideSDK生成器应用程序。 它将用于创建,运行和包装TideSDK应用程序提供一个GUI。 为了让开发商开始加快,TideSDK Builder中引入了一个新的功能 - 支架。 脚手架生成所有锅炉板,以实例化发展的具体模式,如MVC骨干项目一个。 开发人员可以使用TideSDK Builder创建,导入和共享支架。

对于TideSDK该路线图包括CommonJS的为1.4的实施,旨在为开发者提供使用JavaScript更加模块化的开发经验。

你好,世界

一个TideSDK项目包括与包含核心项目文件夹资源的一些样板代码。 下面举例说明一个简单的Hello World应用程序,将在所有支持plaforms运行的stucture:

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

该清单包含有关项目中使用的运行时模块的信息。 tiapp.xml提供配置和default_app_logo.png是,默认情况下将在被告席上,系统托盘或在您的应用程序的窗口出现在图像。

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

// 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。 它调用上面的脚本。

<!DOCTYPE html>
<html>
<head>
  <title>Hello World</title>
  <style type="text/css">
    body {background: #fff;}
  </style>
</head>
<body>
  <h1>Hello World</h1>
  <script type="text/javascript" src="app.js"></script> 
</body>
</html>

在不到10行JavaScript代码,我们创建了一个菜单,将“文件”和“退出”菜单项,然后将其设置到主窗口。 一个简单的回调方法用于弹出打开一个确认窗口。 如果用户确认,应用程序将退出。

背景

二是由开发Appcelerator的和Apache 2许可下提供。 Appcelerator的最初提供的开源开发者钛创建项目。 后来Appcelerator的介绍闭源钛工作室,在集锦之上的IDE。 虽然它目前仍然可以开发TideSDK在钛工作室,一个插件可能在未来需要。 [安德鲁:对不起,这是我不清楚。 一个插件,钛工作室? 或集锦? 或TideSDK?]

Appcelerator的已提供的SDK TiStudio用用,可能帮助我们创建一个插件TiStudio允许TideSDK通过TiStudio使用



Answer 3:

如引用,TideSDK( http://www.tidesdk.org/ )是一种选择(目前为我好),你也可以去用同样的想法XUL亚军( https://developer.mozilla.org/en -US /文档/ XULRunner的 ),Adobe AIR的( http://www.adobe.com/devnet/air/air-sdk-download.html )(这里: http://www.adobe.com/devnet/air。 HTML是与教程“如何”在其他方面比闪存之外和Dreamweaver,AppJS( http://appjs.org/ )或节点的Qt( https://github.com/arturadib/node-qt )有更多的工作有CEF( http://code.google.com/p/chromiumembedded/ ),锫( http://berkelium.org/ ),awesomium( http://awesomium.com )或者我如何能在一个嵌入火狐GUI应用程序?它说如何嵌入在应用壁虎(Firefox的引擎)。

好了,现在我的所有观点:第一选项,将为您提供一个更好的方式去,因为他们基本上都是“浏览器”的作品跨平台,您将部署一个HTML + JS + CSS的应用程序(与空气可以部署闪光/动作脚本应用程式太); 你必须建立一个应用程序,然后其他选项把“浏览器”中,它提供了更多的灵活性,但可能会适得其反。

我所有的经验是:tidesdk - 好且稳定,但仍在增长,所以一些先进的功能可能会丢失,但是你可以编译它,开发团队是非常活跃

XULRunner的 - 稳定的,不可能做复杂的事情,你需要一个好的C的知识,使自己的组件,因为它只是为您提供基本的东西。 它在你能做什么,而是有内容的刚性结构非常灵活的,除非它以这样的方式库组织您的应用程序将无法运行,而在我看来有一个丑陋的语法(笑),这是Java和JavaScript风格的混合体编程

Adobe AIR的 - 易于使用和部署,但闪光灯这给我的东西未优化怪异的感觉瘙痒

appjs - 是的NodeJS,示例的作品,我不能让我的自定义应用程序的运行,我认为这是没有精制而成,它的作品,对我来说,在一个古怪的方式

nodeqt - 是QT +的NodeJS,你需要自己编译的Qt版本,我没有测试过,但看起来简单部署

嵌入方式的其他人 - 没有测试过,看起来不错,所有的,但我不知道,可能白白地工作过



Answer 4:

怎么样使用铬嵌入式框架 。

这是开源(BSD许可证),并配备了绑定C,C ++,.NET( 1或2 ), 爪哇 ,Delphi和Python的 。

这.NET中的绑定也与单声道完全兼容,这将是有帮助的一个跨平台的应用程序。

注: AppJS ,但是以另一种回答mentionned,是建立在CEF(利用顶部的node.js )。



Answer 5:

我会扔这一个:

AppJS: http://appjs.org/



Answer 6:

wxWidgets的了。

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



Answer 7:

自从我第一次的回答是wxWidgets的,你觉得Qt是不适合你......
你提到的JavaScript -注意, PyQt的规定[巨蟒]绑定2的Qt和Qt 3”。 PySide是诺基亚的Qt的官方Python绑定。 A “的PyQt VS PySide” 搜索提供了有趣的结果:

  • 对SO: https://stackoverflow.com/questions/1297660/pyside-vs-pyqt
  • 一些技术性的diff
  • PyQt的VS PySide比较
  • PyQt的或PySide -使用哪一个

还有PythonQt但我还没看着它。

仅供参考,

  • Qt的网络例子
  • Qt的WebKit的例子 :

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

    这些例子和演示显示范围WebKit的不同用途,从显示的Qt用户界面中的Web页面的基本功能的Web浏览器的实现。

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

具体关于Qt任何使“不是非常适合”的吗?



Answer 8:

这有什么错单和WinForms



Answer 9:

  1. 令人奇怪的是Qt是不适合你。 你可能会惊讶地听到煎茶的设计师和动画产品使用Qt和QWebView跨平台JavaScript和完整菜单和图标和可执行文件和系统对话框和文件I / O应用。

    目前,它的工作原理的Windows,OSX和Linux。

    他们使用一个内部开发的库调用离子加载和交互的JavaScript应用。 他们提供了JS使用一些辅助类。

    它使用Qt来创建并加载一个窗口,并创建在该窗口和负载HTML和其他内容从文件到该视图的web视图的简单骨架C ++应用程序。

  2. 另一种解决方案是Adobe的AIR这就好比原生支持的浏览器。 它还提供了部署。



文章来源: Is there a cross-OS GUI framework that supports embedding HTML pages?