`

WxWidgets初體驗

    博客分类:
  • ruby
阅读更多
最近無聊想寫點小程式.. 可是不想用Visual Basic寫,用Ruby + GUI Toolkit寫
可是該選哪套GUI Toolkit? 說真的.. GTK+好難用喔ˊˋ.. Qt完完全全不想用
WindowsAPI? 那我乾脆用VB就好了=..=
選來選去看來看去.. 乾脆就看了godfat的建議,去玩wxWidgets
wxWidgets在Ruby上的binding叫做WxRuby,我們先來做準備吧。
首先,我們要安裝wxWidgets跟WxRuby
連線到http://www.wxwidgets.org/下載wxWidgets
接著打開命令提示字元,輸入gem i wxruby -y
一切搞定後,就可以開始先來寫個"哈囉握的"
開啟irb,輸入以下程式碼

require 'rubygems'
require 'wx'
include Wx # => 我比較懶XD

class HelloWorld <> on_init override
helloframe = Frame.new(nil, -1, "HelloWorld")
StaticText.new(helloframe, -1, "Wa ha ha")
helloframe.show
end
end

HelloWorld.new.main_loop

在wxWidgets中,每個視窗都是一個Frame,而StaticText則是Label(在VB中就叫做Label,SWT我不知道XD)
Okok.. 可以動對不對? 不能動那就.. (( 當作沒看到

繼續...
或許各位會認為很奇怪,為什麼要自己慢慢寫.. 不要用視覺化的開發工具呢?
現在來跟各位介紹,在GTK中有所謂的Glade,那在wxWidgets呢?當然有wxGlade!
如果不喜歡wxGlade,這邊也有列表:[網址太長請點我]
在wxWidgets中,支援一種叫做XRC(XML Resource)的格式檔案,很多視覺化工具,如wxGlade都支援輸出這種檔案。
這種檔案的好處是不管是哪種開發工具或者程式語言,都可以藉由這個XRC檔案來產生一樣的介面。
各位可以到http://wxglade.sourceforge.net/下載wxGlade,安裝後就可以開始拖拉了。
弄好一個介面後,我們選擇產生XRC檔案。
接著在同個目錄下,新增一個.rb檔案。
假設我們有一個Frame與一個Button
Frame: MainFrame
Button: btnButton
程式碼如下

require 'rubygems'
require 'wx'
include Wx

class MainFrame < btn =" find_window_by_id(xrcid('btnButton'))" xml =" XmlResource.get" xrc_file =" File.join(File.dirname(__FILE__)," main =" MainFrame.new">
OK,大致上就這樣囉..

分享到:
评论

相关推荐

    wxWidgets-2.8.0.zip_Accel.cpp_wxDynamicLibrary_wxWidgets_wxwidge

    《wxWidgets-2.8.0:跨平台GUI框架的深度解析》 wxWidgets是一个开源的、免费的、跨平台的图形用户界面(GUI)库,...无论你是初涉GUI编程的新手,还是经验丰富的开发者,wxWidgets都是一个值得探索和利用的宝贵资源。

    拼图游戏jigsaw games

    作为初涉大型程序开发的作品,它展示了作者对编程基础和交互设计的理解。尽管目前仅支持鼠标操作,但可以看出作者在游戏逻辑和用户体验上的初步尝试。 在拼图游戏中,通常涉及到以下几个关键知识点: 1. 图像处理...

    SuperGrips:重新实现德国 SuperGrips 电视节目 (Blockbuster)-开源

    在 1980 年代末和 1990 年代初,德国电视播放了一个名为 SuperGrips 的游戏节目,类似于美国的 Blockbuster 节目。 这是使用 WxWidgets 和 OpenGL 的重新实现,目前仅适用于 Windows。 为了获得良好的游戏体验,需要...

    我写的记事本

    "我写的记事本"是一款个人开发的简单文本编辑器,作为作者的处女作,它代表了初涉编程领域的开发者对于软件工程的一种尝试和学习。在这个项目中,作者可能运用了基础的编程语言,如C++、Python或Java,通过编程实现...

    四角号码查询器 V6 云计算版

    对于用户界面,开发者可能运用了如Qt、wxWidgets或者.NET Framework等跨平台的UI框架,提供友好且一致的用户体验。 作为一款开源工具,四角号码查询器V6的源码对于学习和研究汉字查询算法、云计算应用以及软件开发...

    QT学习之路2(带书签)

    - **跨平台框架对比**:文中提到了另一个著名的跨平台GUI框架——wxWidgets,它与Qt在设计哲学和技术实现上有一定的相似之处,但也有各自的特点和应用场景。 #### 结语 《QT学习之路2》不仅是对初学者友好的入门...

    学生成绩管理系统

    虽然C++本身并不擅长图形用户界面(GUI)的开发,但可以借助第三方库如Qt、wxWidgets等实现。此外,考虑到错误处理和异常安全,系统应包含适当的错误检测和处理机制,以防止因输入非法数据导致程序崩溃。 在压缩包...

    一个简单的日记本程序

    开发者可能选择使用GUI(图形用户界面)库,如Qt或wxWidgets,来构建程序的外观。 2. **文件操作**:日记数据需要存储在本地文件中,因此程序必须实现文件的打开、创建、读取和写入功能。在C++中,这可以通过...

    c++公司管理系统

    2. 图形用户界面(GUI):更高级的版本可以采用Qt、wxWidgets等库开发图形界面,提供更加直观的操作体验。 五、系统架构 1. 分层架构:分为表示层(用户界面)、业务逻辑层(处理业务规则)和数据访问层(与数据库...

    Python-White-Bear-Editor:白熊网站编辑器的Python重写

    wxPython是Python中的一个GUI工具包,它实现了wxWidgets库的Python绑定,允许开发者创建原生外观的跨平台应用程序。在Python-White-Bear-Editor中,wxPython 4.1.1版本被用作构建用户界面的基础,提供了丰富的控件和...

    TFlatButton-开源

    OWL是一种古老的但功能强大的C++图形用户界面(GUI)库,它由Borland公司在1990年代初开发。尽管现在可能不如其他现代框架如Qt或wxWidgets流行,但在当时,OWL为开发者提供了构建Windows应用程序的强大工具。...

    智能医疗办公室:应用程序的发布

    8. 用户界面:尽管C++本身并不擅长图形用户界面(GUI)开发,但可以通过Qt或wxWidgets等库来创建直观易用的界面,提升用户体验。 综上所述,智能医疗办公室应用程序的发布是C++技术在医疗领域的成功应用案例。它...

    draw:画画

    创建这样的应用可能涉及使用编程语言如Java、Python、C#或JavaScript,以及使用如Qt、wxWidgets或 Electron这样的跨平台GUI框架。 9. **触摸输入与手写识别**: 针对平板电脑或触控设备,应用可能需要支持触摸...

Global site tag (gtag.js) - Google Analytics