没有Gui选项?

时间:2009-06-23 17:39:29

标签: shoes

好吧,我真的在推动鞋子在这里的界限,所以我不指望任何奇迹:有没有办法选择运行鞋子应用程序没有一个gui ?

我想这样做的原因是我正在创建一个供“非计算机人”使用的工具,以及“计算机人员”,他们宁愿只是将程序作为命令行工具运行,也许甚至在没有安装X / gtk的系统上也是如此。 (我是一名多学科研究员,鞋子非常适合专注于工具而不是整天摆弄gui设计。)

以下是一些示例代码:

if(ARGV[1] == "nogui")
  puts "running computation on #{ARGV[2]}";
  exit();
end

Shoes.app(:width => 200, :height => 100) do
  @button = button("Quit").click() {
    exit();
    }
end

除了我得到

之外有效
Gtk-CRITICAL **: gtk_main_quit: assertion `main_loops != NULL' failed

错误。

1 个答案:

答案 0 :(得分:1)

我还没有尝试过,但我不知道鞋子甚至会在没有X的系统上开心。你可能最好创建一个shell脚本来选择启动哪个版本。像这样:

#!/usr/bin/sh
NOGUI=0
if [ $# -gt 0 ]; then
  NOGUI=$1
fi
if [ $NOGUI = nogui ]; then
    shift
    echo "Running in command-line mode..."
    ruby command-line.rb "$@"
else
    echo "Starting Shoes..."
    shoes shoes.rb "$@"
fi

如果第一个参数是nogui,则剩余的参数将被发送到Ruby版本,否则所有参数(包括第一个参数)都将发送给Shoes。

现在你只需要将实际的性能逻辑分开,以便可以将它导入到两个版本中。