我正在尝试在Ruby中编写一个脚本,它以交互方式为程序生成一些输入数据。这个想法是在它存在时使用QtRuby,否则使用控制台。我试过的是
begin
require "Qt4"
rescue LoadError => load_err
puts "Qt not found, using console"
end
class ConsoleDefine
# console code
end
class QtDefine < Qt::Widget
# GUI code
end
但是当Qt4不存在时,解释器拒绝了我的代码。有没有办法处理它类似于C ++,如:
#ifdef QT4
class qt4gui
{
// some code
};
#else
class qt4gui
{
// dummy
};
#endif // Qt4
答案 0 :(得分:4)
使用require对您有利:
begin
require "Qt4"
require "my_lib/qt4"
rescue LoadError => load_err
puts "Qt not found, using console"
require "my_lib/console"
end
创建两个文件:
# my_lib/console.rb
class ConsoleDefine
# console code
end
# my_lib/qt4.rb
class QtDefine < Qt::Widget
# GUI code
end
答案 1 :(得分:1)
正如@pst所说,你不需要Ruby中的预处理器,因为它是动态的。所以:
begin
require "Qt4"
class QtDefine < Qt::Widget
# GUI code
end
rescue LoadError => load_err
puts "Qt not found, using console"
class ConsoleDefine
# console code
end
end