`

Ruby GUI

    博客分类:
  • gui
阅读更多
[begin edited]

作者 godfat (godfat 真常) 看板 Ruby
標題 Re: [心得] GUI
時間 Sun Jul 22 18:13:32 2007
───────────────────────────────────────

說是這樣說,不過真正開始測試的時候,我發覺﹍

1. wxRuby
實在有點難用﹍有一堆不該有的參數要傳來傳去﹍放棄

2. FXRuby
mac 上其實是可以用啦﹍只是需要 X11, 不能用 Aqua
結果就是﹍對 user 來說很難用,放棄

3. QtRuby
結果還是得回到 QtRuby...
cmake .
make
sudo make install

測試了一下,正常可用 Qt4
不過市面上的文件好像以 Qt3 為多就是了

嘖,沒有 port install qtruby 真的很可惜
這樣以後要升級或是反安裝就比較麻煩了
不知道當初安裝的 source 是不是要留下來以便反安裝作業

--
--
※ 發信站: 批踢踢實業坊(ptt.cc)

[end edited]

關於 computer science 這個領域,除了程式語言(programming language)與物件導向(object-oriented)外,再下一個興趣大概就是使用者圖形介面了吧(GUI). 所以我一直想找個自己喜歡的 toolkit 來用,在 C++ 中無非就是 Qt4 了,不過在 Ruby 中,似乎沒有一個比較完美的 solution, 一個個來看。

在這之前,我先說明一下我用過的 C/C++/Java GUI toolkit.

1. MFC, 學校在教如何剪貼 MFC code, 我是叛逆份子,所以一個字都沒聽進去。不用別人說很糟,光看第一眼就覺得很糟,更何況他又是被罵得半死的東西。

2. wxWidgets, 這算是我第一個使用的 GUI toolkit, 基本上,我認為這真的是個很強大的東西,沒話說。不過最令人嘖嘖稱奇的應該是他跨平台的能力,如果我沒記錯的話,他跨的平台好像比 Java 還多!不過因為風格問題,我不是很喜歡。基本上,我認為 wxWidgets 的風格有些過於老舊,寫起來感覺不是很好。Ruby binding 叫 wxRuby.

3. Qt, 我想正是因為 wxWidgets 跟我不太合,所以才繼續找下去。不料找到 Qt4, 我認為這應該是接近完美的 solution 了。有人說,Qt 至少領先其他人十年,也許這麼講並不為過。最令人詬病的,大概就是你只能從 GPL 或超昂貴的商業 solution 兩種 license 中選一種。其實我不覺得這對我來說會是很大的困擾,open source 沒什麼不好,雖然 GPL 是有點太激進了些。Ruby binding 叫 QtRuby.

4. GTK+, 這個其實我不只沒用過,甚至連看都沒看過。理由很簡單,就是我不想用 C 想用 C++. 當然我知道 GTK+ 評價不錯,也有 Glade 和 win32 的 port, 只是似乎沒有足夠的推力讓我去嘗嘗看。

5. Swing, 會碰這個完全只是因為需要用 Java. 我個人是覺得他跟 wxWidgets 各有千秋,但同樣遠遜於 Qt. 不過也許這樣比較並不太公平,Java 天生就是沒 C++ 強。所以 Qt 遠勝可能是理所當然的?Ruby 要用可以使用 JRuby.

6. Ultimate++, 其實這個我沒用過,不過看起來是不錯。沒去試主要有三個原因,一,他綁 IDE, 這個我很不爽。二,他的命名法我不能接受。三,Qt 很好。XD 其實你去看他的網站,他有一個範例程式,並用各種 toolkit 來實做。我個人認為這個動作滿不誠懇的,他有故意挑其他人弱點的嫌疑。而且各 toolkit 做到的東西明顯有差異,這樣比並不公平。不誠懇,不喜歡。

7. Notus/VCF, 這兩樣 toolkit 都有一個很大的特色,就是 template template and template... 基本上用 C++ 當然是要用 template 啊!!不過知道這兩樣東西時我已經有一段時間沒碰 GUI 了,所以並沒有仔細調查這兩個 toolkit 感覺如何。但我想如果沒辦法接受 Qt 的話,這兩套 toolkit 值得一看。

8. .NET/mono, 這個其實我只用過 Visual C++ 2005 Express 稍微拉了一下介面,感覺還不錯,但直接寫起程式不知道是什麼感覺。Ruby 要用的話,或許可以試試 IronRuby, 不過我個人對 .NET 沒什麼好感,就不去試了。

9. VCL, Borland 的招牌,我用過 Turbo C++ Explorer, 感覺是﹍基本上我覺得沒有 .NET 好的感覺。而且要跨平台恐怕有點難,所以就不考慮了。更何況這些好像也不算 open source 的吧?

10. FOX, 這個是我最沒聽過的 toolkit, 是去找 Ruby GUI 時才發現他的存在,所以我一點都不知道他的狀況究竟如何。評價似乎是不錯,而且好像很年輕。只是呢﹍FXRuby 似乎沒有 mac 的 port, 而我也已經有點懶得用 C++ 寫 GUI 了,所以還是暫時跳過吧﹍。基本上沒有跨 win32/x11/aqua 三大系統的 toolkit, 我就沒什麼興趣試了。

本來只想隨意講一點的,不知不覺就扯多了。接下來看 Ruby 能使用的東西:

1. tk, 沒記錯的話,這個被 ruby 內建起來了。不過似乎是用過的都說爛,所以還是不要多考慮吧?

2. FXRuby, FOX 的 ruby binding, 評價相當不錯,唯一的缺點也許是還沒有 mac 版的樣子?我想未來應該值得繼續關切,雖然我還沒看過他程式寫起來像什麼樣子。要試用的話,除了需要安裝 FOX, FXRuby 就:gem install fxruby

3. wxRuby, wxWidgets 的 ruby binding, 我是看到有人批評寫起來像在寫 C++, 這應該算是一個滿大的缺點,不過看在他功能強大,跨平台能力驚人的份上,還是值得試試看吧。要試用的話,除了需要安裝 wxWidgets, wxRuby 就:gem install wxruby

4. QtRuby, Qt3 與 Qt4 的 ruby binding, 基本上評價仍然是相當地好,唯一的兩大缺點,第一個是沒有 gem, 不能 gem install qtruby, 第二個是在 windows 上要安裝似乎非常困難,沒有簡單的方法。但我相信假以時日,這兩個問題都能夠解決(嗚嗚)。

5. Swing, 要灌 JRuby, 我的 macports 似乎找不到 jruby, 我又不想從 sun 的網站抓下來灌,再說,我也沒喜歡過 swing 過,所以就懶得試了。

6. Mono, 我有灌 mono, 不過不是很清楚能不能用 IronRuby 之類的東西存取,之所以寫在這,算是做個筆記,說不定可以使用這樣。

7. GTK+, 我不是很確定有沒有 ruby binding, 但我想應該會有才是。不試的理由同上,所以也只是暫時筆記。

Ruby 的 GUI 比較有名的大概就這幾個了吧。其實我是一直想試 QtRuby 的,雖然 windows 上似乎不太容易使用,但相信假以時日一定可以的。而讓我卻步最大的問題點在於,不能用 gem 安裝,macports 也找不到 QtRuby. 也就是說,我得親自 ./configure make make install, 但我不喜歡這樣,管理不便。所以我決定還是暫時放下他,等他有 gem 或是 port 時再說吧!

FXRuby 因為沒用過 FOX, 所以也還是放著再說。更何況據說是沒有 mac 版,那我試屁啊﹍。所以左右思量之下,我還是決定先試 wxRuby! 安裝方便,強大的跨平台能力,雖然是 C++ style 而非 the ruby way, 但對我來說 C++ style 也不是那麼地令人排斥,也許有點詭異,但我覺得也可以用自己想要的方式重新 wrap 一次,對 ruby 來說那是如此簡單的事!

so have a try with wxRuby!

this is the hello world:

require 'rubygems'
require 'wx'

class HelloWorld < Wx::App
include Wx
def on_init
helloframe = Frame.new nil, -1, "Hello World"
StaticText.new helloframe, -1, "Hello World"
helloframe.show
end
end

HelloWorld.new.main_loop


sudo port install wxwidgets
sudo gem install wxruby
分享到:
评论

相关推荐

    ruby gui 客户端

    shoes2-novideo 实现gui的

    Ruby GUI Toolkits

    Ruby GUI工具包是用于创建图形用户界面的库,它们允许开发者构建交互式的桌面应用程序。虽然Ruby没有一个原生的、类似Ruby的GUI系统,但默认提供了Tk工具包。Tk工具包虽然功能基本,文档不足,且外观一般被认为不...

    Ruby的GUI构建工具ShenmeGUI.zip

    系统需求Ruby版本大于等于2.0.0。因为前后端通讯使用了websocket,所以需要使用支持websocket的浏览器。目前打开文件对话框只实现了windows版本,在Linux等使用会出错,以后会尝试在其他系统实现,除此之外对系统...

    借助RubyGnome2库进行GTK下的Ruby GUI编程的基本方法

    【RubyGnome2库】是Ruby语言用于GTK+图形用户界面开发的重要工具,它为GTK+库提供了完整的Ruby封装,允许开发者用Ruby语言编写GUI应用程序。RubyGnome2保留了GTK+的API命名规则,使得熟悉GTK+的开发者能够轻松过渡到...

    Glimmer-Ruby桌面开发GUI库-Ruby开发

    Glimmer是用Ruby编写的本机GUI跨平台桌面开发库。 Glimmer-Ruby桌面开发GUI库(自2007年以来就是原始的Glimmer库。请注意模仿者!)Glimmer是一个用Ruby编写的本机GUI跨平台桌面开发库。 Glimmer的主要创新是JRuby ...

    Scripted GUI Testing with Ruby

    《Scripted GUI Testing with Ruby》一书聚焦于利用Ruby编程语言进行图形用户界面(GUI)自动化测试的方法与实践,为软件开发、质量保证(QA)以及项目管理领域提供了宝贵的资源和指导。本书不仅覆盖了广泛的GUI测试...

    Ruby-qtbindings允许你在Ruby中使用QTGui工具包

    Ruby-qtbindings是一个开源项目,它为Ruby编程语言提供了对QT GUI工具包的无缝集成。QT是一个功能强大的C++库,广泛用于构建图形用户界面(GUI)应用,而Ruby-qtbindings则是将QT的丰富功能引入到Ruby世界的一个桥梁...

    flammarion:漂亮的ruby gui工具包

    Flammarion GUI工具包 概述 Flammarion是一个易于使用的库,用于显示您通常可以以更易于访问的方式在命令行中显示的信息。 它并非旨在成为完整的应用程序开发工具包。 相反,它适用于小型脚本,在这些脚本中您只想...

    hostbase:基于高级恶意AP攻击的Ruby GUI

    -¡Bienvenidos al proyecto主机库! -Bienvenue sur le projet主机库! 官方页面如果您喜欢该项目,请尽可能多地共享它。 即使AP切换到其他通道,Hostbase也会自动执行加密的WPS Rogue AP和DoS。...

    wxruby and shadow

    标题中的“wxruby”指的是一个开源项目,它是一个Ruby绑定到wxWidgets库的工具,允许开发者使用Ruby语言创建原生的GUI(图形用户界面)应用程序。wxWidgets本身是一个跨平台的C++库,支持多种操作系统,如Windows、...

    Scripted_GUI_Testing_with_Ruby

    ### Scripted GUI 测试与 Ruby:全面解析与深入探索 #### 一、书籍概述与背景 《Scripted GUI Testing with Ruby》是一本专注于图形用户界面(GUI)测试的专业书籍,作者通过本书向读者展示了如何使用现代编程语言...

    Ruby-Rbkit一个新的Ruby分析器包含一个GUI

    总的来说,Rbkit为Ruby开发者提供了一种强大的工具,通过其直观的GUI界面,使性能监控和调试工作变得更为高效。无论是在开发初期找寻代码问题,还是在项目后期优化性能,Rbkit都能成为你不可或缺的助手。

    玻璃:用水晶写的桂图书馆

    - "ruby gui library" 表明这个项目受到了 Ruby GUI 库的启发或者在某些方面与之兼容,比如可能采用了类似的 API 设计。 - "crystal graphics" 指的是用 Crystal 语言处理图形,这与创建 GUI 库直接相关。 - "wip" ...

    Ruby/tk学习资料

    Ruby/tk是一种基于Ruby语言的图形用户界面(GUI)库,它基于Tcl/Tk工具包并进行了封装以适应Ruby的语法和习惯。 #### 1. 引入Ruby/tk 在使用Ruby/tk之前,首先需要确保已经正确安装了Ruby环境,并且安装了Ruby/tk库...

    Ruby-GNOME2.zip

    Ruby-GNOME2提供GNOME 2.0开发环境的Ruby绑定,目前在活跃更新中。如果你喜欢GTK的界面,你一定会喜欢Ruby-GNOME2。GTK目前提供Linux、 Windows等多个平台的运行库,也就是说使用GTK... 标签:RubyGNOME2 GUI开发框架

    无涯教程(LearnFk)-Ruby教程完整离线版.pdf

    同时,Ruby的GUI工具支持(如Tcl/Tk、GTK和OpenGL)也使得创建图形界面的程序变得简单。另外,Ruby的“Here Document”特性是构建多行字符串的一种独特方式,它允许在代码中直接嵌入字符串,这对于格式化输出和配置...

    纯Ruby创建Win32窗口

    标题“纯Ruby创建Win32窗口”涉及到的是在Windows操作系统环境下,使用Ruby编程语言来创建原生的图形用户界面(GUI)窗口。Ruby是一种面向对象的、动态类型的编程语言,通常用于编写脚本和Web应用,但通过特定的库和...

    Eclipse搭建Ruby开发环境

    - PyQt4 是用于创建 GUI 应用程序的库。 - Python 下载地址:[http://www.python.org/download/](http://www.python.org/download/) - PyQt4 下载地址:...

Global site tag (gtag.js) - Google Analytics