ROOT Tutorials - Session 51 ROOT Tutorials – Session 8 GUI, Signal/Slots, Image Processing, Carrot Fons Rademakers.

Slides:



Advertisements
Similar presentations
Chapter 3 – Web Design Tables & Page Layout
Advertisements

Rapid Application Design with the ROOT GUI Classes 24 April 2007 Ilka Antcheva, Bertrand Bellenot, René Brun, Fons Rademakers, Valeriy Onuchin * CERN,
Intermediate Level Course. Text Format The text styles, bold, italics, underlining, superscript and subscript, can be easily added to selected text. Text.
© by Pearson Education, Inc. All Rights Reserved.
Visual Basic 2010 How to Program. © by Pearson Education, Inc. All Rights Reserved.2.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
1 GUI Elements in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Introduction To Form Builder
1 Introduction to the Visual Studio.NET IDE Powerpoint slides modified from Deitel & Deitel.
With Alex Conger – President of Webmajik.com FrontPage 2002 Level I (Intro & Training) FrontPage 2002 Level I (Intro & Training)
Module 3 Productivity Programs Common Features and Commands Microsoft Office 2007.
Scripted, Tab Accessible Tree Control Hierarchical view of data via tree control. Keyboard Navigation from initially closed tree to view above with focus.
ROOT An object oriented HEP analysis framework.. Computing in Physics Physics = experimental science =>Experiments (e.g. at CERN) Planning phase Physics.
BUILDING RICH MEDIA ELEMENTS. Design Decisions Based on Design Specification  Following the design specification will ensure that the application is.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
June 2001ROOT 2001 FNAL1 What Else is New Since ROOT 2000? Fons Rademakers.
Tutorial 1 Getting Started with Adobe Dreamweaver CS3
Bertrand Bellenot ROOT Users Workshop Mar ROOT GUI Builder Status & Plans ROOT & External GUI World MFC, FOX, Qt, PVSS… Snapshot of the Future.
An Introduction to Visual Basic
XP New Perspectives on Microsoft Office FrontPage 2003 Tutorial 4 1 Microsoft Office FrontPage 2003 Tutorial 4 – Using Shared Borders and Themes.
Department of Mechanical Engineering, LSUSession VII MATLAB Tutorials Session VIII Graphical User Interface using MATLAB Rajeev Madazhy
IE 411/511: Visual Programming for Industrial Applications
Introduction to Matlab & Data Analysis
T U T O R I A L  2009 Pearson Education, Inc. All rights reserved. 1 2 Welcome Application Introducing the Visual Basic 2008 Express Edition IDE.
Aligning the data in cells By default, Excel aligns text entries on the left margin of the cell (left justification) and aligns numeric entries on the.
Domain 3 Understanding the Adobe Dreamweaver CS5 Interface.
CS377A: A Programming Approach to HCI Jan Borchers Spring Swing Refresher David Merrill 5/14/2002
3461A Readings from the Swing Tutorial. 3461A Overview  The follow is the Table of Contents from the trail “Creating a GUI with JFC/Swing” in the “The.
Codewriters – Website Management Overview of Codewriters Website management services. Including, design templates, content and document publishing, auto.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
WaveMaker Visual AJAX Studio 4.0 Training Basics: Building Your First Application Designer Basics.
Visual C# 2012 How to Program © by Pearson Education, Inc. All Rights Reserved.
VISTA IMAGING RADIOLOGY VIEWER. 2 The focus of this document is on the VistA Imaging Display Radiology Viewer. Other Display changes will be discussed.
Visual C# 2012 How to Program © by Pearson Education, Inc. All Rights Reserved.
CS324e - Elements of Graphics and Visualization Java GUIs - Event Handling.
ROOT’s graphics on iOS. ROOT’s graphics (general scheme):
Practical Programming COMP153-08S Week 5 Lecture 1: Screen Design Subroutines and Functions.
ROOT courses1 The ROOT System A Data Access & Analysis Framework Graphics.
User Interface Components Lecture # 5 From: interface-elements.html.
Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley C H A P T E R 13 GUI Programming.
RIA and Web2.0 Development with no Coding Juan Camilo Ruiz Senior Product Manager Development Tools.
Swing - 2 Session 13. Swing - 2 / 2 of 38 Objectives (1) Discuss trees and tables Discuss progress bars Discuss MVC architecture Describe menus.
16 October 2002ROOT 2002, CERN1 Progress with Carrot Valeriy Onuchin.
ROOT Users Workshop September 2005 Ilka Antcheva GUI Status and Development.
 2002 Prentice Hall. All rights reserved. 1 Chapter 2 – Introduction to the Visual Studio.NET IDE Outline 2.1Introduction 2.2Visual Studio.NET Integrated.
Introducing Dreamweaver. Dreamweaver The web development application used to create web pages Part of the Adobe creative suite.
APPX Design Environment Futures Planned development.
LCG AA Meeting 31 October 2007 The new dynamically and extensively customizable ROOT browser Bertrand Bellenot.
Programming Logic and Design Fourth Edition, Comprehensive Chapter 14 Event-Driven Programming with Graphical User Interfaces.
Oct 20024th Intl. ROOT Workshop1 New Infrastructure Features Since ROOT 2001 Fons Rademakers.
CHEP06, Mumbai, India February 2006 General Status of ROOT GUI Ilka Antcheva, Bertrand Bellenot, René Brun, Valeriy Onuchin *, Fons Rademakers CERN,
IE 411/511: Visual Programming for Industrial Applications Lecture Notes #2 Introduction to the Visual Basic Express 2010 Integrated Development Environment.
LCG AA Meeting 30 June 2004 Ilka Antcheva Graphics User Interface in ROOT.
CIS 205—Web Design & Development Flash Chapter 3 Working with Symbols and Interactivity.
 2002 Prentice Hall. All rights reserved. 1 Introduction to the Visual Studio.NET IDE Outline Introduction Visual Studio.NET Integrated Development Environment.
LCG AA Meeting 26 April 2006 User Interface Developments in ROOT Ilka Antcheva on behalf of ROOT GUI Work Package.
LCG AA Internal Review 30 March 2005 ROOT Graphical User Interface Ilka Antcheva, Bertrand Bellenot, Valeri Fine, Valeriy Onuchin, Fons Rademakers.
XP New Perspectives on Microsoft Office FrontPage 2003 Tutorial 5 1 Microsoft Office FrontPage 2003 Tutorial 5 – Creating Tables and Frames.
Topics Graphical User Interfaces Using the tkinter Module
Chapter 2 – Introduction to the Visual Studio .NET IDE
1. Introduction to Visual Basic
GUI Using Python.
Chapter 2 – Introduction to the Visual Studio .NET IDE
GTK + Programming.
Development The Foundation Window.
Topics Graphical User Interfaces Using the tkinter Module
Graphics and FLTK CSCE 121 J. Michael Moore
Image Display and AstroROOT
TA: Nouf Al-Harbi NoufNaief.net :::
Presentation transcript:

ROOT Tutorials - Session 51 ROOT Tutorials – Session 8 GUI, Signal/Slots, Image Processing, Carrot Fons Rademakers

ROOT Tutorials - Session 52 GUI

ROOT Tutorials - Session 53 The ROOT GUI Classes Originally based on the XClass’95 widget library from Hector Peraza A rich and complete set of widgets Uses only X11 and Xpm (no Motif, Xaw, Xt, etc.) Object oriented class library, no wrapper around a C library. Can be extended via inheritance Small (12000 lines of C++) Win95 look and feel

ROOT Tutorials - Session 54 XClass’95 Integration in ROOT All X11 calls abstracted via the TVirtualX abstract graphics interface Use ROOT container classes, notably hash tables for fast lookup of frame and picture objects Added TObject inheritance to the few base classes to get I/O and extended RTTI capabilities Added many new widgets (now 35K lines)

ROOT Tutorials - Session 55 Available Widgets Complete set of widgets: label, icon, button, check button, radio button, picture button, button box, list box, combo box, list view, icon view, number entry, text entry, text view, text edit, tree view, tab view, scrollbar, slider, menubar, popup menu, cascading menu, statusbar, toolbar, message dialogs, file selection dialog, progress bars, tooltips,...

ROOT Tutorials - Session 56 Creating a GUI The widgets are laid out in frames TGFrame, TGCompositeFrame, TGMainFrame, TGTransientFrame, TGroupFrame And arranged by layout managers TGHorizontalLayout, TGVerticalLayout, TGRowLayout, TGListLayout, TGTileLayout, TGMatrixLayout,... Using a combination of layout hints TGLayoutHints (left, center x, right, top, center y, bottom, expand x, expand y and fixed offsets) Event handling by messaging (as opposed to callbacks). Like Win32. And by signals and slots. Like Qt.

ROOT Tutorials - Session 57 Basic Widgets

ROOT Tutorials - Session 58 Advanced Widgets Color selector dialog: TGColorDialog

ROOT Tutorials - Session 59 GUI Examples – Histogram Browser

ROOT Tutorials - Session 510 More GUI Examples – Period System

ROOT Tutorials - Session 511 Signal and Slot Mechanism

ROOT Tutorials - Session 512 Signals and Slots Integration of signal and slot mechanism into the ROOT core TQObject, TQConnection, TQClass, … Signal and slots were pioneered by Trolltech in their Qt GUI toolkit This mechanism facilitates component programming since it allows a total decoupling of the interacting classes

ROOT Tutorials - Session 513 Signals and Slots Example: Emitting a Signal class A : public TQObject{ private: Int_t fValue; public: A() { fValue = 0; } Int_t GetValue() const { return fValue; } void SetValue(Int_t); //*SIGNAL* }; class A { RQ_OBJECT(“A”) private: Int_t fValue; public: A() { fValue = 0; } Int_t GetValue() const { return fValue; } void SetValue(Int_t); //*SIGNAL* };

ROOT Tutorials - Session 514 Signals and Slots Example: Emitting a Signal void A::SetValue(Int_t v) { if (v != fValue) { fValue = v; Emit("SetValue(Int_t)", v); } void TGButton::Clicked() { Emit(“Clicked()"); }

ROOT Tutorials - Session 515 Signals and Slots Example: Connecting a Signal to a Slot A *a = new A(); A *b = new A(); a->Connect("SetValue(Int_t)", "A", b, "SetValue(Int_t)"); a->SetValue(79); b->GetValue(); // this is now 79 fButton->Connect("Clicked()", "MyFrame", this, "DoButton()");

ROOT Tutorials - Session 516 Signals and Slots The ROOT signal and slot system uses the dictionary information and interpreter to connect signals to slots Many different signals are emitted by: TVirtualPad (TCanvas and TPad) TSysEvtHandler (TTimer, TFileHandler) All GUI widgets Let your classes emit signals whenever they change a significant state that others might be interested in

ROOT Tutorials - Session 517 Image Processing Classes

ROOT Tutorials - Session 518 Requirements Developed by Reiner Rohlfs of ISDC User requirements coming from the astrophysics community Main requirements: Fast display Color editor Base class for astronomical display

ROOT Tutorials - Session 519 Example

ROOT Tutorials - Session 520 Zooming Option: always square pixels

ROOT Tutorials - Session 521 rotation by 90 °vertical mirror zoomsmooth

ROOT Tutorials - Session 522 Basics It is available since ROOT The ROOT image class is build on top of a lower level C - library: libAfterImage (Sasha Vasko) Read and write several image file formats (GIF,TIFF, JPEG,...) Zoom New: convert a 2 – D data array into color pixels FOR MORE INFO...

ROOT Tutorials - Session 523 Class Hierarchy TNamed TImage TASImage TGMainFrame TPaletteEditor TASPaletteEditor TImagePalette TObject TAttImage

ROOT Tutorials - Session 524 How to use TASImage Build the libAfterImage library Download ftp://root.cern.ch/root/libAfterImage.tar.gz Create a shared library ( ${ROOTSYS}/lib ) There are two example macros: galaxy_image.C rose_image.C

ROOT Tutorials - Session 525 Foreseen Improvements To simplify the build process of a libRootASImage.tar.gz Interface TASimage to the 2 – D histogram classes A text editor of the palette

ROOT Tutorials - Session 526 Carrot

ROOT Tutorials - Session 527 What is Carrot? Carrot is a module for Apache web server which enables the use of C++ as an HTML-embedded scripting language as well as executing C++ macros. It is similar to PHP, in functionality: