好吧,我真的在推动鞋子在这里的界限,所以我不指望任何奇迹:有没有办法选择运行鞋子应用程序没有一个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
错误。
答案 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。
现在你只需要将实际的性能逻辑分开,以便可以将它导入到两个版本中。