Qt Igor November 8, 2002 Friday’s HENP Group Meeting.

Slides:



Advertisements
Similar presentations
First Steps with Qt Julien Finet Kitware Inc. Jan. 05 th 2010.
Advertisements

COMPUTERS: TOOLS FOR AN INFORMATION AGE Chapter 3 Operating Systems.
Linux Operating System Linux is a free open-source operating system based on Unix. Linux was originally created by Linus Torvalds with the assistance of.
Lecture 4: Embedded Application Framework Qt Tutorial Cheng-Liang (Paul) Hsieh ECE 424 Embedded Systems Design.
QT GUI Programming CS340 – Software Design © 2009 – Jason Leigh University of Illinois at Chicago.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
CS 4800 By Brandon Andrews.  Specifications  Goals  Applications  Design Steps  Testing.
55 CHAPTER SYSTEM SOFTWARE. © 2005 The McGraw-Hill Companies, Inc. All Rights Reserved. 5-2 Competencies Describe the differences between system software.
Linux GUI X-Windows System. X-Windows System A stable and extremely powerful GUI system that provides a complete Client/Server framework. The X-org foundation.
Server & Client  Client: Your computer  Server: Powerful & Expensive computer. Requires network access.
Chapter 13 Web Application Infrastructure. Objectives Explain the components and purpose of a web application platform Describe several common webapp.
QT Intro. 김기형
L8: Qt4 Concept Qt Module QObject QObject Model Signal and Slot Qt Event Loop.
Lecture 1: Overview of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++ Designed.
Wir schaffen Wissen – heute für morgen A.C.Mezger An EPICS Display manager with Qt The EPICS display manager MEDM is a very powerful tool with many features.
Cross-platform approach to create the interactive application based on ROOT and Qt GUI libraries Rene Brun (CERN) Valeri Fine (BNL,
An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying.
LAMAD Symbian Qt Symbian OS One of the first modern mobile operating systems Most popular smartphone OS until the end of 2010 Main Nokia OS.
Oct ROOT 2002, CERN, Geneva Qt-Based Implementation of Low Level ROOT Graphical Layer By V.Fine.
Section 6.1 Explain the development of operating systems Differentiate between operating systems Section 6.2 Demonstrate knowledge of basic GUI components.
Chapter 1 Introduction to Visual Basic Programming and Applications 1 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta.
Linux GUI Chapter 5. Graphical User Interface GUI vs. CLI Easier and more intuitive More popular and advanced Needed for graphics, web browsing Linux.
Operating Systems Operating System
Blanchette and Summerfield, Ch. 2
The Basics  Operating systems (OS) can help computer users do many things, like managing and manipulating files and folders.  Operating systems also.
Cross-platform GUI Frameworks for 3D Apps and Games: Qt vs wxWidgets
 2002 Prentice Hall Chapter 4 Software Basics: The Ghost in the Machine.
Server & Client  Client: Your computer  Server: Powerful & Expensive computer. Requires network access.
Programming in C#. I. Introduction C# (or C-Sharp) is a programming language. C# is used to write software that runs on the.NET Framework. Although C#
Objective-C First Part adapted from a presentation by Kevin Layer.
May 9, 2002Serguei A. Mokhov, 1 Kickstart Intro to Java Part I COMP346/ Operating Systems Revision 1.6 February 9, 2004.
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
Using Qt for GUI development Brad Whitlock March 2002.
* Property of STI Page 1 of 18 Software: Systems and Applications Basic Computer Concepts Software  Software: can be divided into:  systems software.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 14 Database Connectivity and Web Technologies.
CNS 1410 Graphical User Interfaces. Obectives Students should understand the difference between a procedural program and an Event Driven Program. Students.
Dale Roberts Introduction to Visual Programming Dale Roberts, Lecturer Computer Science, IUPUI Department of Computer and.
Cross-platform C++ development using Qt®
GUI With GTK+ Under Linux Fanfan Xiong. Introduction GTK+ (GIMP toolkit) : A library for creating graphical user interfaces(GUI) Two examples developed.
-1- National Alliance for Medical Image Computing First Steps with Qt Julien Finet Kitware Inc. Jan. 05 th 2010.
Module 2 Part I Introduction To Windows Operating Systems Intro & History Introduction To Windows Operating Systems Intro & History.
Windows Programming, C.-S. Shieh, KUAS EC, Chapter 0 Overview.
QT Programming QT Programming Ruku Roychowdhury. Background QT is a cross platform application framework. Widely used to develop GUI applications. Originally.
. The ideas behind Qt and a live demo Qt in Education.
GUIs Basic Concepts. GUI GUI : Graphical User Interface Window/Frame : a window on the screen Controls/Widgets : GUI components.
The Bridge Pattern (Structural) “All problems in computer science can be solved by another level of indirection.” – Butler Lampson ©SoftMoore ConsultingSlide.
© 2012 Pearson Education, Inc. All rights reserved types of Java programs Application – Stand-alone program (run without a web browser) – Relaxed.
Dale Roberts Introduction to Visual Programming Dale Roberts, Lecturer Computer Science, IUPUI Department of Computer and.
Dale Roberts Programming with Qt Dale Roberts, Lecturer Computer Science, IUPUI Department of Computer and Information Science,
What is O.S Introduction to an Operating System OS Done by: Hani Al-Mohair.
Sung-Dong Kim Dept. of Computer Engineering, Hansung University Chapter 3 Programming Tools.
1. 2 Qt Toolkit ● C++ toolkit for cross-platform GUI application development – GUI functions (GUI = graphical user interface) – Data access components,
September 24th 2006, aKademy The Design and Implementation of KJSEmbed Richard Moore,
Chapter 2 Operating Systems
Chapter 13 Web Application Infrastructure
Mobile Application Development with MeeGo™ - Touch Apps & UI Design
HCI/CHI: Computer-Human Interaction
Internet and Java Foundations, Programming and Practice
Jonathan Riddell Canonical Kubuntu Ubuntu KDE
QT graphical user interface framework
5 SYSTEM SOFTWARE CHAPTER
Mobile Application Development with MeeGo™ - Programming with SDK
Qt Programming.
The Designer.
5 SYSTEM SOFTWARE CHAPTER
A multi-platform GUI-building program
Go4 GUI and GSI's QtROOT interface
Go4 GUI and GSI's QtROOT interface
A multi-platform GUI-building program
Web Application Development Using PHP
Presentation transcript:

Qt Igor November 8, 2002 Friday’s HENP Group Meeting

What is Qt? “…multiplatform C++ GUI application framework…” “…Qt is fully object-oriented, easily extensible, and allows true component programming…” Supported platforms MS/Windows (MFC) : from 95 to XP UNIX (X11) : most popular flavors Mac OS X : Embedded : Linux with frame buffer support “…Qt is also the basis of the popular KDE Linux desktop environment…” Qt is a product of Trolltech ( Commercially introduced in early 1996

Versions and availability V2.x :Is free for non-commercial development for all platforms. Licenses: QPL or GPL V3.x : has lots of new stuff compared to v2.x Is free for non-commercial development for UNIX only. Licenses: QPL or GPL. 30 days free evaluation download is available for MS- Windows and Mac OS X. Is available in two editions (see next slide) for commercial software development. Prices vary from $1240 to $4370 per license depending on the total number of clients and the Qt edition. No royalty for resulting applications

Modules and Editions

What makes Qt a “cool” stuff? My personal opinion : It provides “all in one” object oriented framework for the component programming – one of the main practices in the contemporary software development (not in HEP) A collection of services provided through the framework for the applications developers is nearly complete (for majority of desktop applications). It includes famous “triad”: GUI (user interaction) Database (persistency) Networking (distributed programming) QtDesigner Signal-Slot Objects Communication Model

Multi-platform applications development Qt Object Model QtDesigner … Most interesting features

#include int main( int argc, char **argv ) { QApplication app( argc, argv ); QLabel hello( " Hello Qt! “, " ", 0 ); app.setMainWidget( &hello ); hello.show(); return app.exec(); }

Qt Object Model Qt is supposed to add an extra flexibility to the plain C++ Object Model with the following extensions : - a mechanism for seamless object communication called signals and slots - queryable and designable object properties - events and event filters - contextual string translation for internationalization - interval driven timers that make it possible to integrate many tasks in an event-driven GUI - hierarchical and queryable object trees that organize object ownership in a natural way - guarded pointers, QGuardedPtr, that are automatically set to 0 when the referenced object is destroyed, unlike normal C++ pointers which become "dangling pointers" when their objects are destroyed

Qt Object Model : 1 The Qt Object Model implementation : - Standard C++ techniques, based on inheritance from QObject base class - Meta Object System provided by Qt's own Meta Object Compiler (“moc”)

Signals and Slots

#include int main( int argc, char **argv ) { QApplication app( argc, argv ); QPushButton quit( “Quit”, 0 ); QObject::connect( &quit, SIGNAL( clicked()), &app, SLOT ( quit())); app.setMainWidget( &quit ); quit.show(); return app.exec(); }

Meta Object System Provides : Signals and Slots mechanism for inter-object communication, runtime type information, and the dynamic property system Is based on : -the QObject class -the Q_OBJECT macro inside the private section of the class declaration - the Meta Object Compiler (moc) to handle C++ extensions

Meta Object System : 1 How it works : A developer writes a file using Qt C++ extension The moc reads a C++ source file. If it finds one or more class declarations that contain the Q_OBJECT macro, it produces another C++ source file which contains the meta object code for the classes that use the Q_OBJECT macro. Among other things, meta object code is required for the signal/slot mechanism, runtime type information and the dynamic property system. The C++ source file generated by the moc must be compiled and linked with the implementation of the class (or it can be #included into the class's source file).

MOC Example class MyClass : public QObject { Q_OBJECT public: MyClass( QObject* parent=0, const char* name=0 ); ~MyClass(); signals: void mySignal(); public slots: void mySlot(); };

MOC Example : 1 class MyClass : public QObject { Q_OBJECT Q_PROPERTY( Priority priority READ priority WRITE setPriority ) Q_ENUMS( Priority ) public:... enum Priority { High, Low, VeryHigh, VeryLow }; void setPriority( Priority ); Priority priority() const; };

QtDesigner Approach

QtDesigner Approach : 1

QtDesigner Approach : 2