- 浏览: 227573 次
- 性别:
- 来自: 上海
最新评论
-
Mybeautiful:
碰到同样问题,谢谢分享。
Android shape中的padding无效 -
finger:
还有 Open3.capture 系列 和 Open3.pop ...
读《The Ruby Way》之运行外部程序 -
qianguming:
在eclipse中怎么配置的啊
Cannot run program jad -
luckyfenfen:
解决了我的问题,谢谢啦~
MySQL Plugin 'InnoDB' init function returned error. -
shasha_god:
请问一下,yum install zlib-devel
yu ...
在CentOS上安装git
rubynroll的《300行代码你能做什么》中,介绍了GtkSimpleLayout,实现了类似Shose的代码风格。
从http://github.com/rickyzheng/GtkSimpleLayout/tree/master下载了最新的代码,编译的时候却无法通过,显示SyntaxError。
调查了之后发现,原来Ruby 1.8中,define_method中不能使用block,Ruby 1.9中没有问题。因此对simple_layout.rb的代码进行了如下修改。
终于编译通过了。
简单的实验
竖排三个按钮
计算器布局
模仿http://the-shoebox.org/apps/126写的小程序
参考:
http://coderrr.wordpress.com/2008/10/29/using-define_method-with-blocks-in-ruby-18/
从http://github.com/rickyzheng/GtkSimpleLayout/tree/master下载了最新的代码,编译的时候却无法通过,显示SyntaxError。
引用
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': ./simple_layout.rb:105: syntax error, unexpected ',', expecting '|' (SyntaxError)
define_method(k) do |*args, &block|
^
./simple_layout.rb:487: syntax error, unexpected kEND, expecting $end from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from test1.rb:2
define_method(k) do |*args, &block|
^
./simple_layout.rb:487: syntax error, unexpected kEND, expecting $end from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from test1.rb:2
调查了之后发现,原来Ruby 1.8中,define_method中不能使用block,Ruby 1.9中没有问题。因此对simple_layout.rb的代码进行了如下修改。
105行: define_method(k) do |*args, &block| create_component(v, args, block) end ↓ eval <<-EOM def #{k}(*args, &block) create_component("#{v}", args, block) end EOM 432行: def create_component(component_class, args, block) @common_attribute ||= [] options = {} options = args.pop if args.last.is_a?(Hash) options.merge! @common_attribute.last if @common_attribute.last + w = eval("#{component_class}.new(*args)") layout_component(w, options, &block) end
终于编译通过了。
简单的实验
竖排三个按钮
require 'gtk2' require 'simple_layout' class MyWin < Gtk::Window include SimpleLayout::Base def initialize super add my_layout signal_connect('destroy') do Gtk.main_quit end end def my_layout vbox do button 'Mice' button 'Eagles' button 'Quail' end end end MyWin.new.show_all Gtk.main
计算器布局
require 'gtk2' require 'simple_layout' class MyWin < Gtk::Window include SimpleLayout::Base def initialize super add my_layout signal_connect('destroy') do Gtk.main_quit end end def my_layout vbox do with_attr :border_width => 3 do hbox do entry :id => :ent_input, :layout => [true, true, 5] end hbox do frame do label 'M', :set_size_request => [20, 20] end hbutton_box do button 'Backspace' button 'CE' button 'C' end end hbox do vbutton_box do button 'MC' button 'MR' button 'MS' button 'M+' end with_attr :layout => [true, true] do number_and_operators_layout end end end end end def number_and_operators_layout vbox do [ ['7', '8', '9', '/', 'sqt'], ['4', '5', '6', '*', '%'], ['1', '2', '3', '-', '1/x'], ['0', '+/=', '.', '+', '=']].each do |cols| hbox :layout => [true, true] do cols.each do |txt| button txt, :set_size_request => [20, 20], :layout => [true, true] end end end end end end MyWin.new.show_all Gtk.main
模仿http://the-shoebox.org/apps/126写的小程序
require 'gtk2' require 'simple_layout' class MyWin < Gtk::Window include SimpleLayout::Base def initialize super('Little Helper v0.4') add my_layout signal_connect('destroy') do Gtk.main_quit end register_auto_events() end def my_layout entry1 = nil vpaned do area_first do frame 'Awful numbers', :border_width => 5 do vbox do label 'Hours/week', :set_size_request => [200, -1] @entry1 = entry :layout => [false, false], :max_length => 20, :id => :entry1 label 'Money/hour', :set_size_request => [200, -1] @entry2 = entry :layout => [false, false], :max_length => 20, :text => '16', :id => :entry2 label 'Tax (in %)', :set_size_request => [200, -1] @entry3 = entry :layout => [false, false], :max_length => 20, :text => '20', :id => :entry3 end end end area_second do frame 'Rags or riches', :border_width => 5 do vbox do @lab1 = label '0.0' end end end end end def entry1_on_key_release_event(*_) @lab1.text = calculate.to_s end def entry2_on_key_release_event(*_) @lab1.text = calculate.to_s end def entry3_on_key_release_event(*_) @lab1.text = calculate.to_s end def calculate @entry1.text.to_f * @entry2.text.to_f * ((100-@entry3.text.to_f)/100.0) * 4.3 end end MyWin.new.show_all Gtk.main
参考:
http://coderrr.wordpress.com/2008/10/29/using-define_method-with-blocks-in-ruby-18/
发表评论
-
ActiveRecord::Base.update 的 alias_method_chain 顺序变化
2010-07-19 11:01 1320alias_method_chain有非常强大的功能,使得我们 ... -
Ruby:按照插入的顺序取出要素
2010-07-12 00:37 1100利用pseudohash库的PseudoHash类,可以实现按 ... -
Ruby时区转换
2010-07-11 22:27 2550要将MySQL数据库中的数据,由日本服务器转移到美国服务器。日 ... -
项目中使用的Rails版本升级 2.2.2=>2.3.8
2010-06-25 15:40 1601项目中使用的Rails版本是2.2.2,想升级到到最新的2.3 ... -
搭建一个自己的Ruby博客系统(toto+heroku+免费域名)
2010-06-21 02:53 8504要有自己的博客系统,首先要有自己的空间 Heroku是著名的R ... -
用Ruby播放音乐
2010-06-19 03:53 1832《The Ruby Way》第14章,记述了一段代码可以调用W ... -
读《The Ruby Way》之运行外部程序
2010-06-17 02:32 1741西班牙输了,这次世界杯强队的表现真是没话可说了。 Ruby里 ... -
读《The Ruby Way》之线程
2010-06-14 19:08 1166经常提及线程,但是用线程编的程序真的是不多。仔细的学习一下吧。 ... -
读《The Ruby Way》之数值计算
2010-06-13 23:18 932世界杯至今为止的比赛都看了,不过很多比赛都是在三心二意的看,凌 ... -
读《The Ruby Way》之正则表达式
2010-06-12 22:19 1003世界杯开幕了,看了三场球。南非1-1墨西哥,法国0-0乌拉圭, ... -
读《The Ruby Way》之格式化字符串
2010-06-12 00:06 1795一边看世界杯,一边看书。 这一章介绍了很多的字符串处理函数 ... -
读《The Ruby Way》
2010-06-10 21:21 1023从06年10月开始接触Ruby,眨眼间已经过了3年半了。虽然用 ... -
Ruby GUI编程
2010-06-08 19:38 3218Ruby比较成熟的GUI绑定库 ... -
Rails国际化(i18n)
2010-06-07 21:15 5526很早就知道国际化,就知道i18n,却不知道是什么原因。原来in ... -
更新rails的时候发生错误,Invalid Gem format
2009-02-02 17:18 2201今天把rails的版本升级到2.2.2的时候,发生了以下错误。 ... -
让Rails的数据库连接更快--把Ruby/MySQL升级到2.8
2008-12-12 17:46 1735装了C版本的MySQL数据库适配器以后,Rails工程的性能确 ... -
把Rails2.1的默认数据库由sqlite3改回mysql
2008-12-12 16:23 1518装了Rails2.1.2,新生成工程的时候,默认数据库居然是s ... -
TypeError: iterable argument required
2008-11-27 21:25 3632执行ruby script/console,可是报错 ruby ... -
cache_fu的关联补丁(belongs_to, has_one)
2008-09-08 23:15 1151为了缓解数据库服务器 ... -
日本Ruby会议2008(6/20-6/22)
2008-06-21 10:48 1216日本Ruby会议2008,于6/20-6/22在茨城县筑波市举 ...
相关推荐
"MTK 中制作UI工具"这个主题涉及到如何在MTK平台上高效地构建和优化用户界面。 UI工具通常包括一系列软件工具,用于设计、测试和调试用户界面元素。这些工具可能涵盖图形设计、交互设计、布局编辑和性能分析等方面...
在C# WinForm开发中,创建...总结,C# WinForm制作绚丽的UI界面需要掌握自定义控件、界面换肤、DLL引用以及布局和动画效果的应用。通过不断学习和实践,开发者可以打造出极具吸引力的桌面应用,提升用户的使用体验。
《WOW UI制作指南》是一本专为魔兽世界(World of Warcraft,简称WOW)UI设计初学者编写的教程。UI,全称User Interface,即用户界面,是玩家与游戏进行交互的重要部分。在WOW中,UI不仅包括游戏默认的界面元素,还...
这个标题和描述提到的"Office Word,Excel Tab页制作工具 customUI"显然是一个专门用于编辑和创建自定义Ribbon界面的工具。这个工具可能提供了图形化的界面,使得非程序员也能轻松地调整或添加新的标签、按钮和菜单项...
总之,58商铺全新UI试客试用平台网站源码为商家和用户提供了全面的交互体验,结合红包和分销功能,可以有效提升用户参与度和商品销售。对于开发者来说,这是一个了解和学习PHP Web开发,尤其是电商网站功能实现的好...
UiPath是一款机器人流程自动化工具,主要用于简化企业中重复性、手动的任务,实现自动化流程管理。本手册针对使用UiPath进行机器人自动化开发与部署的用户,提供了关于工作流程设计、UI自动化、项目组织、自动化生命...
Unity UI CurvedUI VR曲面界面是一个专门设计用于虚拟现实(VR)环境的用户界面解决方案。这个工具包允许开发者创建的界面元素不仅限于传统的2D平面,而是能够在3D空间中以曲面的形式展现,为用户提供更加沉浸式和...
《UI界面设计与制作》是一门专注于用户界面设计与实现的课程,主要针对那些希望提升自己在数字产品设计领域技能的学生或专业人士。本课程通过全彩的PPT形式,为学习者提供了丰富的视觉体验和详细的教学内容。PPT中...
【游戏UI制作入门】是指利用编程技术,特别是脚本语言,来创建和定制游戏用户界面的过程。这个领域特别关注的是如何使用LUA这种脚本语言,以及相关的开发环境和工具来设计和实现游戏中的交互元素。 【描述】中提到...
UE4 UI 制作详解 UE4 是一款强大的游戏引擎,它提供了丰富的 UI 制作功能。在这篇文章中,我们将详细介绍如何使用 UE4 制作一个简单的 UI 界面。 新建蓝图类 Pawn 在 UE4 中,Pawn 是一个基本的 Actor,它可以被...
网页制作UI是网页设计与开发过程中的重要环节,它涉及到用户与网站的交互方式和视觉体验。对于初学者来说,理解和掌握网页制作UI的基本概念、原则和技巧是至关重要的。 首先,我们需要理解“UI”(User Interface)...
集成运算放大器(简称集成运放)可以通过适当配置电路来实现 Uo = 2Ui1 - 3Ui2 - 5Ui3 这样的输出与输入关系。由于一个单独的集成运放不能直接完成这种复杂的运算,通常需要使用多个运放以及电阻等元件来构建电路。 ...
在iOS开发中,UI制作是至关重要的一环,它关乎到应用程序的用户体验和视觉吸引力。"ios UI制作 扫雷 八种样式"这个项目显然旨在通过实现扫雷小游戏来展示如何设计并构建多样化的用户界面。扫雷游戏,作为一个经典的...
WOW UI制作入门,比较简单的介绍了制作WOW UI的步骤及所需要的工具和知识,适合想做UI的初学者
windows DirectUI界面制作教程-这是目前网上能找到的最详细的教程了+源代码 windows任务栏也是用此技术制作的 qq,微信,office,MSN的界面都是用此技术制作的
使用UGUI制作目录树结构,显示Scene视图中的层级目录。并有控制显隐的按钮。
里面包含用UGUI制作对话框UI的预设体和代码,用来管理游戏中大量存在的弹框,处理之间的层级关系和触控屏蔽等操作
"Scoring UI的制作"这个主题聚焦于创建一个简单的UI排行榜,这是一个常见的功能,用于展示玩家在游戏中获得的成绩或者排名。UI设计不仅要考虑美观,还要注重用户体验,确保信息的清晰易读和操作的直观性。 Unity...
是一款配合.net使用的超级uI,可以通过拖住,实现UI的设计,不需要Ajax,,js,CSS.实现页面无刷新
Unity3D是一款强大的跨平台游戏开发引擎,广泛应用于游戏制作、虚拟现实(VR)和增强现实(AR)项目。在本资源中,“400+科技元素 科幻UI 机甲机械类UI”提供了丰富的设计素材,适用于创建富有科技感和未来气息的...