0

假设我有一个包含两个TGraph的宏:T1T2,并且我有一个画布“ C ”分为两部分:

TCanvas *C = new TCanvas("","",0,0,400,400);
C->Divide(2,1);

当这部分被执行时,我的屏幕上出现了 blanc 画布,但它变灰了.. 不活动!但没关系,然后它继续..

该程序有两个不同的部分,在第一部分它完成计算进入画布的前半部分并绘制第一个TGraph

C->cd(1);
T1->Draw("AP");

在这一点上,我希望已经在画布的前半部分看到了图表,但不幸的是什么都没有出现,画布仍然处于非活动状态!程序进入下一部分:

C->cd(2);
T2->Draw("AP");

同样的故事还没有出现在画布上,但随后执行完成,我回到了根外壳,如下所示:

root[#]

现在我可以看到这两张图了!我想要的是已经执行的部分T1->Draw("AP")应该已经出现在上cd(1),然后应该出现在上的图表cd(2)。有没有办法做到这一点?

4

1 回答 1

3

好的,我在 CERN-ROOT 的帖子中找到了解决方案:

https://root.cern.ch/phpBB3/viewtopic.php?t=13082

用户“couet”建议使用的地方

C->Modified(); C->Update();

在每个“ C->Draw();”之后

我将此应用于我的问题并且它有效。

于 2016-12-17T21:56:40.613 回答