Project Icon

shoes4

Ruby跨平台GUI编程框架

Shoes 4是Ruby跨平台GUI编程框架,兼容Mac、Windows和Linux系统。框架提供简洁API,便于开发图形界面应用。采用SWT技术,支持原生控件,性能稳定。附带丰富示例和文档,适合不同水平开发者使用。当前为预览版本,实现主要Shoes DSL功能,正在积极开发中。

Shoes 4 Linux构建状态Windows构建状态代码质量测试覆盖率

Shoes 4:Shoes的下一个版本

关于Shoes

Shoes是一个用于跨平台(Mac、Windows和Linux)GUI编程的小型DSL。它感觉像真正的Ruby,而不仅仅是另一个C++库的包装器。有关一些示例、手册和免费书籍,请查看Shoes网站

基本用法

想看看Shoes是什么样子的吗?好吧,给你看看!给定以下脚本:

Shoes.app width: 300, height: 200 do
  background lime..blue

  stack do
    para "欢迎来到Shoes的世界!"
    button "点击我" do alert "点击得好!" end
    image "http://shoesrb.com/img/shoes-icon.png",
          margin_top: 20, margin_left: 10
  end
end

这将生成以下应用程序:

shoes 4 Linux截图

外观和感觉会因你的操作系统而异,因为Shoes 4使用原生小部件。

Shoes的一些历史

很久很久以前,有一个叫_why的人。他创建了一个名为Hackety Hack的项目,旨在向所有人教授编程。为了触及地球的每个角落,_why决定让Hackety Hack能在Windows、Mac OS X和Linux上运行。这需要大量工作,所以_why决定与世界分享他的工具包。于是,Shoes诞生了。

预览版

嗨,感谢你的关注!Shoes 4目前处于预览阶段。它现在支持几乎所有的shoes DSL,但仍有一些不支持的地方和已知问题。我们现在定期在rubygems上发布更新的预览版,以便于安装。如果你还不太冒险,你仍然可以使用旧版shoes

安装Shoes 4

有两种方式可以获得Shoes 4 - 预览版gem发布和直接从github安装。这两种方式都需要安装当前版本的JRuby

我们建议使用JRuby 9.X+,目前我们大多数测试是在9.1版本上进行的。JRuby 1.7.x 可能可以工作,但自4.0.0.pre6版本以来就未经测试。

获取JDK和JRuby

因此,你的第一步是安装JDK(shoes也可以使用OpenJDK)和JRuby。确保为你的操作系统获取适当的JRuby版本。在Linux/Mac上,你也可以使用Ruby安装工具来安装JRuby。例如rvm

$ rvm install jruby

JDK版本注意事项: JRuby 9版本需要7或8版本的JDK - JDK 9目前还不能与JRuby一起使用,因此也不能与Shoes一起使用。此外,在JDK主要版本中,确保安装最新的更新,我们遇到过新版本解决了一些错误的情况。

SWT要求: 请注意,Shoes 4默认后端基于SWT。这通常不是问题(除了需要JRuby/JDK,如上所述),因为你不需要自己安装SWT。但是,这意味着我们有与SWT相同的基本系统要求。对于Linux来说,这意味着你需要GTK+ >= 2.10或者如果你喜欢的话>= 3.0。此外,目前还没有ARM支持(如树莓派所需要的)。

将Shoes 4作为gem安装

*nix (Mac OSX/Linux)

$ gem install shoes --pre

Windows

C:\tmp> jruby -S gem install shoes --pre

从github安装Shoes 4

如果你想要最新版本或想贡献代码,你需要直接从github仓库安装。

*nix (Mac OSX/Linux)

  1. Fork仓库并克隆你的fork,或者

     $ git clone git://github.com/shoes/shoes4.git
    
  2. 设置本地环境

     $ cd shoes4
     $ gem install bundler && bundle install
    

注意:如果您安装了rvm、rbenv或类似的工具,它可能会提示您应该使用特定版本的jruby。这是因为我们保持.ruby-version文件的更新。您应该能够使用JRuby 9.0.0.0或更高版本运行它。不过,我们推荐使用最新版本。

  1. 您已准备就绪!

Windows

  1. Fork仓库并克隆您的fork,或者

     C:\tmp> git clone git://github.com/shoes/shoes4.git
    
  2. 设置本地环境

     C:\tmp>cd shoes4
     C:\tmp\shoes4>jruby -S gem install bundler
     C:\tmp\shoes4>jruby -S bundle install
    
  3. 您已准备就绪!

运行Shoes应用

Shoes 4带有一个命令行应用运行器。只需将Shoes应用的文件名传递给它即可。

$ bin/shoes samples/simple_sound.rb

注意: 对于Windows,使用C:\tmp\shoes4>bin\shoes samples\simple_sound.rb。如果您将Shoes 4作为gem安装,只需执行C:\tmp> shoes path\to\file.rb

使用SWT后端时,还有一个简单的ruby启动脚本,您可以按如下方式使用:

$ bin/shoes-swt samples/simple_sound.rb

这在Mac上还不能工作,因为JRuby(JVM)需要一些额外的参数。在这里,您可以执行以下操作(基本上是bin/shoes所做的):

$ jruby -J-XstartOnFirstThread bin/shoes-swt samples/simple_sound.rb

另一种选择是在应用程序顶部添加require 'shoes',然后您可以简单地执行

$ jruby path/to/file.rb

在OS X上,您仍然需要为JRuby提供额外的参数

$ jruby -J-XstartOnFirstThread path/to/file.rb

想看看shoes能做什么?

您可以运行rake samples,随机的我们认为正常工作的样例将会运行,直到您按Ctrl + C退出。其中一些非常简单,而其他的则更复杂,甚至是游戏! 如果您发现这些样例有任何问题,请告诉我们

通过将SHOES_USE_INSTALLED环境变量设置为true,您还可以使用已安装的shoes版本(shoes命令)来运行样例,而不是本地的bin/shoes

打包Shoes应用

打包功能还处于初期阶段,请谨慎使用。

为了打包应用,您需要在环境中安装Shoes gem。如果您没有进行gem安装,您始终可以从当前源代码生成gem并安装:

$ rake install:all

现在,您可以打包应用了。但首先,请注意以下几点:

  • 打包器将包含您的shoes脚本目录及其下的所有内容,除非您告诉它不要这样做。
  • 如果打包器检测到.gemspecGemfile,可能无法正常工作。它使用Warbler,而Warbler总是会寻找这些文件。如果您运行规格,您可能会注意到一些类似这样的警告:

warning: Bundler `path' components are not currently supported. The `shoes-4.0.0.pre1' component was not bundled. Your application may fail to boot!

这是Warbler在说话。实际上,我们偷偷地加入了Shoes gem,但不要告诉别人。

好的,现在真的开始了。最简单的方法是将您的脚本单独放在一个目录中,然后:

$ bin/shoes package --mac path/to/directory-of/your-shoes-app.rb

这将生成一个Mac应用,您可以在path/to/directory-of/pkg/your-shoes-app.app中找到它。

您还可以将shoes应用打包成jar文件:

$ bin/shoes package --jar path/to/directory-of/your-shoes-app.rb

您可以在与上面相同的目录中找到jar文件,即path/to/directory-of/pkg/your-shoes-app.jar

如果您想要更多控制(比如您想为应用命名为"Shoes App"以外的名称,或者您不想包含我们之前谈到的所有文件),请创建一个app.yaml文件。有关更多详细信息,请参阅示例

注意: 如果您使用app.yaml,您将必须自定义或注释掉每个选项。示例仅仅是一个示例 ;)

当您的脚本旁边有一个app.yaml文件时,您有三个选项:

$ bin/shoes package --mac path/to/directory-of/your-shoes-app.rb
$ bin/shoes package --mac path/to/directory-of/app.yaml
$ bin/shoes package --mac path/to/directory-of

打包器将使用这些命令中的任何一个找到您的指令。同样,您会在项目目录内的pkg目录中找到您的应用。通过bin/shoes --help了解更多信息。

哦,您还可以使用bin/shoes来运行您的Shoes应用。

想要贡献?

太棒了,谢谢您! 你可以尝试修复我们的一个问题

我们引入了一个新标签"新手友好",用于我们认为适合初学者开始贡献的问题。这些问题要么相对容易解决,要么不依赖太多其他Shoes代码(例如全新功能),因此更容易上手。

请随意处理任何问题 - 如有需要我们会提供帮助。这个标签只是一个建议!=)

此外,在samples/README中有一份已经可以运行的样例列表,以及其他所有样例。你可以尝试让一个新样例运行起来。为此,你可以运行rake non_samples来随机运行一个我们认为不能工作的样例。如果你只想列出不能工作的样例,也可以运行rake list_non_samples

无论做什么,请确保编写规格说明,因为Shoes 4是以TDD方式开发的(参见下面的运行规格说明部分)。所以确保不要破坏任何测试 :-)

如果你对测试或实现不确定,只需开一个问题或拉取请求。拉取请求不需要完成 - 它们是很好的讨论起点!我们很乐意帮助你准备好你的贡献,以便合并到Shoes 4中!

事实上,我们非常欢迎早期的拉取请求,以便审查代码并帮助你熟悉Shoes 4!=)

如果你有问题,也可以随时到FreeNode IRC的#shoes频道询问。人们可能不会立即回应,但过一段时间后总会有人回复 :-)

有时重构一些代码或编写一些规格说明也是熟悉项目的好方法。如果你想尝试这种方法,可以查看我们的Code Climate来寻找重构的候选对象,或者在本地运行规格说明后,查看coverage目录并打开index.html - 它显示了我们当前的覆盖率数据。看到一些没有覆盖到的内容,也许你可以为它编写一个规格说明?

有关如何运行前面提到的规格说明的信息,请参考以下部分 :-)

运行规格说明

Shoes 4是使用RSpec以TDD风格开发的。你应该编写并运行规格说明 :)

最简单的方法是使用rake任务。

$ bundle exec rake

(尝试rake --tasks获取完整列表)

如果你想了解更多关于运行规格说明的其他模式、测试的哲学和内容的详细信息,请查看wiki中的测试Shoes条目

行为准则

很久很久以前,有一个叫_why的人。他创建了一个名为Hackety Hack的项目,目的是教所有人编程。为了覆盖地球的各个角落,_why决定让Hackety Hack在Windows、Mac OS X和Linux上运行。这是一项艰巨的工作,所以_why决定与世界分享他的工具包。于是,Shoes诞生了。

Shoes的诞生是为了教地球各个角落的每个人编程。对新程序员或英语不好的程序员因为他们的Ruby/英语写得不好而苛刻是不酷的。显然,任何针对他人宗教、种族、性别认同或任何个人问题的反社会评论在这片充满chunky-bacon的土地上都是不被容忍的!如果社区成员觉得你在任何项目空间(代码、问题、聊天室、邮件列表)的评论不当,他们会根据我们的行为准则友好地告诉你如何改进。

底线是:玩转Shoes,享受乐趣!

Shoes在网络上的足迹

如果你想了解Shoes的最新动态,可以在以下地方找到我们:

联系方式

想要与Shoes社区取得联系?太好了!你可以通过以下方式联系我们:

但是我们尽量将大多数关于开发的讨论保持在这个仓库/问题中,这样每个人都可以看到并查找它们。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号