作者godfat (godfat 真常)
看板Ruby
标题Re: [问题] 请问qtruby有无refenrence document
时间Sun Jun 1 15:39:52 2008
: 推 godfat:就我所知,好像没有很完整的 ref, 我自己也是看 c++ 那份 05/30 22
: → godfat:基本上几乎一样啦,凑合着用吧 @_@b 05/30 22
: → Romulus:首先我不知道QMenu的triggerer(QAction) SLOT在ruby 06/01 00
: → Romulus:要怎麽写 orz 只能遇一次问一次?(汗) 06/01 00
: → Romulus:试过triggered(Qt:Action)和(QAction)和(Action)都不行 06/01 00
先参考这里:
http://techbase.kde.org/Development/Languages/Ruby
然後你说的 SLOT, 应该是指 signal 吧?signal 是主动端,
是发出事件的那个人。
基本上 QtRuby 的 binding 都是一对一对应,没有依照 ruby 特性改写什麽,
所以... connect 是这样写:
win.connect menu, SIGNAL('triggered(QAction*)'), game, SLOT('menu(QAction*)')
那个 * 什麽的都要保留。而且也不能用 ruby 的 Qt::xxx 的名称,要用原本的 Qxxx
给你看完整测试程式:
require 'Qt4'
class Game < Qt::Object
slots 'menu(QAction*)' # 这边其实也可以用 symbol, 不过就不能有参数的样子
def menu action
Qt::MessageBox::about Qt::Application.instance.activeModalWidget,
# activeModalWidget 就是抓现在 on focus 那个 widget
'menu?', action.iconText
end
end
app = Qt::Application.new ARGV
game = Game.new
win = Qt::MainWindow.new
menu = Qt::Menu.new 'say'
menu.addAction 'XD'
win.menuBar.addMenu menu
win.connect menu, SIGNAL('triggered(QAction*)'), game, SLOT('menu(QAction*)')
win.show
app.exec
所以这样写就是按下 XD 的时候,会跳出讯息 XD
--
『风车』が廻り続ける度に 『美しき』幻想が静かに纺がれ
『焔』の揺らめきの外に 『腕』を伸ばす愚かな者达 -《Roman》5th Story
『宝石』をより多く掴もうと 『朝と夜』の狭间を彷徨い続ける Track 10
『星屑』の砂の煌めきにも 『葡萄酒』の仄甘い陶酔を魅せ 黄昏の贤者
『贤者』が忌避する槛の中から 『伝言』の真意を彼等に问うだろう
『天使』が别れを告げし时 『地平线』は第五の物语を识る
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.28.18
1F:推 Romulus:感谢!m(_ _)m 请问没有reference你怎麽学的啊?囧> 06/02 09:30
2F:→ godfat:trial & error :p 久了就会知道怎麽试机率比较高 XD 06/02 10:37
3F:推 Romulus:了解 orz Qt Designer已经没有提供下载了吗 06/02 10:54
4F:→ godfat:我不知道有没有分开下载的,我灌 Qt 本身时就有附 06/02 11:28
5F:推 Romulus:我是win32版的不知如何启动……先自己慢慢刻好了 06/02 11:36
6F:→ godfat:以前用的时候,开始=>附属应用程式=>Qt 里面会有捷径 06/02 11:52