gpt4 book ai didi

c++ - 为什么 TCanvas 在 root shell 中执行宏时不绘制?

转载 作者:行者123 更新时间:2023-11-27 23:57:59 26 4
gpt4 key购买 nike

假设我有一个包含两个 TGraphs 的宏:T1T2 并且我有一个 Canvas “C>”分为两部分:

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

当这部分被执行时,白色 Canvas 出现在我的屏幕上,但它是灰色的……不活动!不过没关系,接下来继续..

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

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

此时我希望已经在 Canvas 的前半部分看到图形,但不幸的是什么都没有出现, Canvas 仍然处于非事件状态!程序进行到下一部分:

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

同样的故事, Canvas 上还没有任何东西出现,但随后执行完成,我回到了根 shell,如下所示:

root[#]

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

最佳答案

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

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

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

C->修改();
C->更新();

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

我将它应用到我的问题中并且它起作用了。

关于c++ - 为什么 TCanvas 在 root shell 中执行宏时不绘制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41194635/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com