1

プログラムの入力データを対話的に生成するスクリプトを 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
4

2 に答える 2

4

require を有利に使用します。

begin
  require "Qt4"
  require "my_lib/qt4"
rescue LoadError => load_err
  puts "Qt not found, using console"
  require "my_lib/console"
end

次の 2 つのファイルを作成します。

# my_lib/console.rb
class ConsoleDefine
  # console code
end

# my_lib/qt4.rb
class QtDefine < Qt::Widget
  # GUI code
end
于 2013-02-11T19:15:16.087 に答える
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
于 2013-02-11T19:15:51.237 に答える