C++ 为什么TCanvas在根shell中执行宏时不绘制?
假设我有一个宏包含两个TGraphs:T1和T2,我有一个画布“C”分为两部分:C++ 为什么TCanvas在根shell中执行宏时不绘制?,c++,root-framework,tcanvas,C++,Root Framework,Tcanvas,假设我有一个宏包含两个TGraphs:T1和T2,我有一个画布“C”分为两部分: TCanvas *C = new TCanvas("","",0,0,400,400); C->Divide(2,1); 当这个部分被执行时,BLANC画布出现在我的屏幕上,但是它变灰了。不活跃的但那没关系,然后它继续 程序有两个不同的部分,第一部分完成计算,进入画布的前半部分并绘制第一个TGraph: C->cd(1); T1->Draw("AP"); 此时,我希望已经在画布的前半部分看到了
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");
同样的故事画布上还没有显示任何内容,但执行完成后,我回到根shell,如下所示:
root[#]
现在我可以看到这两张图了!我想要的是像
T1->Draw(“AP”)
这样执行的部分应该已经出现在cd(1)
上,然后cd(2)
上的图形应该出现。有没有办法做到这一点?好的,我在CERN-ROOT的线程中找到了一个解决方案:
用户“couet”建议使用的位置
C->Modified();
C->Update()代码>
在每个“C->Draw();
”之后
我把这个应用到我的问题上,它成功了 好的,我在CERN-ROOT的线程中找到了一个解决方案:
用户“couet”建议使用的位置
C->Modified();
C->Update()代码>
在每个“C->Draw();
”之后
我把这个应用到我的问题上,它成功了 关于评论元问题,如果你在评论中这样做可能会更好,因为大多数读者(不登录或投票的读者)并不真正感兴趣。读者非常喜欢这里的简洁!关于评论元问题,如果你在评论中这样做可能会更好,因为大多数读者(不登录或投票的读者)并不真正感兴趣。读者非常喜欢这里的简洁!