// example.C #include #include #include #include #include #include #include #include class MyMainFrame { RQ_OBJECT("MyMainFrame") private: TGMainFrame *fMain; TRootEmbeddedCanvas *fEcanvas; //TF1 *f1; public: int i; MyMainFrame(const TGWindow *p,UInt_t w,UInt_t h); virtual ~MyMainFrame(); TF1 *f1; TH1F *hist; float randon; void DoDraw(); void Massimo(TH1F*); }; MyMainFrame::MyMainFrame(const TGWindow *p,UInt_t w,UInt_t h) { // Create a main frame fMain = new TGMainFrame(p,w,h); // Create canvas widget fEcanvas = new TRootEmbeddedCanvas("Ecanvas",fMain,500,200); fMain->AddFrame(fEcanvas, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 10,10,10,1)); // Create a horizontal frame widget with buttons TGHorizontalFrame *hframe = new TGHorizontalFrame(fMain,200,40); TGTextButton *draw = new TGTextButton(hframe,"&Draw"); draw->Connect("Clicked()","MyMainFrame",this,"DoDraw()"); hframe->AddFrame(draw, new TGLayoutHints(kLHintsCenterX, 5,5,3,4)); TGTextButton *Max = new TGTextButton(hframe,"&Max"); Max->Connect("Clicked()","MyMainFrame",this,"Massimo()"); hframe->AddFrame(Max, new TGLayoutHints(kLHintsCenterX, 5,5,3,4)); TGTextButton *exit = new TGTextButton(hframe,"&Exit", "gApplication->Terminate(0)"); hframe->AddFrame(exit, new TGLayoutHints(kLHintsCenterX, 5,5,3,4)); fMain->AddFrame(hframe, new TGLayoutHints(kLHintsCenterX, 2,2,2,2)); // Set a name to the main frame fMain->SetWindowName("Simple Example"); // Map all subwindows of main frame fMain->MapSubwindows(); // Initialize the layout algorithm fMain->Resize(fMain->GetDefaultSize()); // Map main frame fMain->MapWindow(); } void MyMainFrame::DoDraw() { //Draws function graphics in randomly chosen interval //TF1 *f1 = new TF1("f1","3*x*x-5*x",0,gRandom->Rndm()*10); // f1->SetLineWidth(3); // f1->Draw(); TH1F*hist=new TH1F("","",100,-10,10); for(i=0;i<10000;i++){ randon= gRandom->Gaus(0,2); hist->Fill(randon); hist->Draw(); } TCanvas *fCanvas = fEcanvas->GetCanvas(); fCanvas->cd(); fCanvas->Update(); } void MyMainFrame::Massimo(TH1F* histo) { // Draws function graphics in randomly chosen interval cout<<"WOW"<GetMaximum(); cout<Cleanup(); delete fMain; } void example() { new MyMainFrame(gClient->GetRoot(),500,200); }