「一不小心挖了个坑」qt-ruby 开始与 hello world

** 开始!**
qtruby 需要 ruby 与 ruby-qt4 两个包,其中 ruby 默认是安装了的。ruby-qt4 安装方法:

zypper in ruby-qt4

好了,我们来 hello SuSE 新建一个 hello.rb 文件

require 'Qt'
app = Qt::Application.new(ARGV)
label = Qt::Label.new("Hello SuSE!",nil)
label.resize(150,30)
label.show()
app.exec

保存之后
ruby hello.rb
看看结果!

** 逐句解释:**
* require ‘Qt’ 读取了一个名叫 Qt 的附加库,使用这个库我们就可以得到图形界面了!
* app = Qt::Application.new(ARGV) 我们新建了一个名为 app 的 qt 程序对象
* label = Qt::Label.new(“Hello SuSE”,nil) 我们新建了一个名为 label 的 Label(标签) 对象。这个对象一个参数是 “Hello SuSE”, 这是他将要显示的字符串(文字)。另一个参数是 nil ,这是 label 的父亲。而 nil 在 ruby 中是空的意思。
* label.resize(150,30) 我们来改变一下 label 的大小。在这句话前面加个‘#’试试!
* label.show() 带着魔力的一句话,label 出现了!
* app.exec 把控制权交给 qt 当我们按下关闭按钮时,返回。

** 我们学到了什么 / 与 c++ 的对比 **
* 首先,我们看到 ruby 没有以分号来表明句子结束,所以请按回车。
* 骗你呢,你想和 c++ 里加分号是可以的。这是 ruby 的哲学: ruby 是一门有趣的语言, 有趣的一个体现就是由你的喜好写程序。
* 在一句话前面加 # 这句话就没用了!这就是注释!请不要偷懒,注释可以帮你理解程序!
* app.exec 后面没有括号,不止这句话,试试其他语句,比如”label.resize(150,30) "。
* ruby 中文参考 kuqin.com/rubycndocument/man/index.html
* ruby 英文参考 ruby-doc.org/stdlib-2.1.1/libdoc/socket/rdoc/index.html
* kde-qtruby 参考 techbase.kde.org/Development/Languages/Ruby

1赞

顶一下,虽然没学过 ruby ,但各种语言的 Qt 库基本上都差不多,看一下就明白了。

坑:ruby 风格的代码。。。

require 'Qt4'
 
Qt::Application.new(ARGV) do
    Qt::Widget.new do
 
        self.window_title = 'Hello QtRuby v1.0'
        resize(200, 100)
 
        button = Qt::PushButton.new('Quit') do
            connect(SIGNAL :clicked) { Qt::Application.instance.quit }
        end
 
        label = Qt::Label.new('<big>Hello Qt in the Ruby way!</big>')
 
        self.layout = Qt::VBoxLayout.new do
            add_widget(label, 0, Qt::AlignCenter)
            add_widget(button, 0, Qt::AlignRight)
        end
 
        show
    end
 
    exec
end

和 python 差不多,不过那个 do end 好别扭 :nauseated_face: