从C ++程序打开两个wxt终端

时间:2012-10-22 10:08:10

标签: c++ xcode macos gnuplot

我有一个C ++程序,其中包含一个与plot()一起使用的类方法gnuplot

FILE* pipe = popen("/sw/bin/gnuplot -persist","w");
if (pipe != NULL){
    gnuPlotCommand = "load " + scriptFileName + "\n";
    fprintf(pipe, gnuPlotCommand.c_str());
 }
else { ... }
fclose(pipe);

脚本文件本身将终端设置为wxt并加载数据文件。当我第一次运行程序调用{​​{1}}时,会出现一个带有图表的窗口。如果我然后运行程序调用{​​{1}}而不关闭第一个窗口,则会出现另一个窗口,但两个窗口都被“阻止”(我无法旋转绘图而无法关闭窗口)。如果我做到了

obj1.plot()

只显示一个绘图窗口。

当我在单独的obj2.plot()中启动相同的obj1.plot(); obj2.plot(); 脚本时,它工作正常(有两个窗口,它们没有被阻止)。如何使用我的程序实现它?我有64位Mac OS X 10.8和XCode以防万一。

更新

我发现删除gnuplot会在调用Terminal.app时显示两个窗口,但其中一个仍然“被阻止”。

1 个答案:

答案 0 :(得分:1)

这是gnuplot的限制。它一次只能打开一个交互式绘图(据我所知,x11aquaterm,...都存在相同的行为。如果你想同时拥有2个交互式图,你需要为你想要的每个交互式图创建一个gnuplot过程(通过popen)。