Welcome from Budapest

Size: px
Start display at page:

Download "Welcome from Budapest"

Transcription

1 Welcome from Budapest 1

2 Welcome from ELTE University Rozália Szabó Nacsa Eötvös Loránd University, Budapest Faculty of Informatics 2

3 C++ GUI Programming with Qt 3 3

4 Qt Overview Qt Qtis is a complete C++ C++ application development framework. It Itincludes a class classlibrary and andtools toolsfor forcross-platform development and and internationalization. Qt Qtapplications run runnatively, compiled from fromthe thesame samesource code, on onall all supported platforms: --Qt/Windows (Microsoft Windows XP, XP, 2000, NT NT 4, 4, Me/98/95) --Qt/X11 (Linux, Solaris, HP-UX, IRIX, AIX, AIX, and andother otherunix variants) --Qt/Mac (Mac (MacOS X) X) --Qt/Embedded (embedded Linux) 4

5 Why Qt? expanded markets short learning curves, ease of ofuse platform independence for fordevelopers native look and feel no runtime environment high performance (no virtual machine or oremulation layers) robustness (+simple memory management) easy integration with 3rd party libraries and products (C++ libs) migration from MFC, Motif extra widgets and components available good C++ performance available source code nice documentation high-quality technical support.... 5

6 Running Qt Assistant 6

7 The Qt s Welcome window 7

8 Class Hierarchy 8

9 9

10 10

11 Hello Qt application QObject QWidget QFrame QLabel #include #include <qapplication.h> #include #include <qlabel.h> int int main(int main(int argc,char argc,char *argv[]) *argv[]) {{ QApplication app(argc,argv); hello.cpp QLabel QLabel *label *label = new new QLabel("Hello Qt!",0); Qt!",0); QApplication }} app.setmainwidget(label); label->show(); return return app.exec(); 11

12 Hello Qt: includes #include #include <qapplication.h> <qapplication.h> #include #include <qlabel.h> <qlabel.h> hello.cpp int int main(int main(intargc,char argc,char *argv[]) *argv[]) {{ QApplication QApplicationapp(argc,argv); app(argc,argv); QLabel QLabel *label *label = new newqlabel("hello Qt!",0); Qt!",0); }} app.setmainwidget(label); label->show(); label->show(); return returnapp.exec(); Give Givethe thedefinitions of ofused usedclasses 12

13 Hello Qt: application #include #include <qapplication.h> <qapplication.h> #include #include <qlabel.h> <qlabel.h> int int main(int main(intargc,char argc,char *argv[]) *argv[]) {{ QApplication QApplicationapp(argc,argv); app(argc,argv); hello.cpp Qt Qtsupports command-line arguments on onits itsown. QLabel QLabel *label *label = new newqlabel("hello Qt!",0); Qt!",0); }} app.setmainwidget(label); label->show(); label->show(); return returnapp.exec(); Gives the thedefinitions of ofused usedclasses Create a QApplication object. 13

14 Hello Qt: label #include #include <qapplication.h> <qapplication.h> #include #include <qlabel.h> <qlabel.h> int int main(int main(intargc,char argc,char *argv[]) *argv[]) {{ QApplication QApplicationapp(argc,argv); app(argc,argv); hello.cpp Second parameter (0) (0) means no no parent. QLabel QLabel *label *label = new newqlabel("hello Qt!",0); Qt!",0); }} app.setmainwidget(label); label->show(); label->show(); return returnapp.exec(); Gives the thedefinitions of ofused usedclasses Creates a QApplication object Create a QLabel object with withno no parent. 14

15 Hello Qt:main widget #include #include <qapplication.h> <qapplication.h> #include #include <qlabel.h> <qlabel.h> int int main(int main(intargc,char argc,char *argv[]) *argv[]) {{ QApplication QApplicationapp(argc,argv); app(argc,argv); hello.cpp If Iflabel labelis is said saidtotobe be a main widget it itvanishes from fromthe the memory AND from fromthe thescreen as aswell wellwhen it itis is closed. QLabel QLabel *label *label = new newqlabel("hello Qt!",0); Qt!",0); }} app.setmainwidget(label); label->show(); label->show(); return returnapp.exec(); Gives the thedefinitions of ofused usedclasses Creates a QApplication object Creates a QLabel object with withno no parent Set Setthe thelabel labelas asthe theapplication s main mainwidget. 15

16 Hello Qt: show #include #include <qapplication.h> <qapplication.h> #include #include <qlabel.h> <qlabel.h> int int main(int main(intargc,char argc,char *argv[]) *argv[]) {{ QApplication QApplicationapp(argc,argv); app(argc,argv); hello.cpp Widgets are arecreated hidden by by default. (no (no flickering) QLabel QLabel *label *label = new newqlabel("hello Qt!",0); Qt!",0); }} app.setmainwidget(label); label->show(); label->show(); return returnapp.exec(); Gives the thedefinitions of ofused usedclasses Creates a QApplication object Creates a QLabel object with withno no parent Sets Setsthe thelabel labelas asthe theapplication s main mainwidget Make the thelabel labelvisible 16

17 Hello Qt: exec #include #include <qapplication.h> <qapplication.h> #include #include <qlabel.h> <qlabel.h> int int main(int main(intargc,char argc,char *argv[]) *argv[]) {{ QApplication QApplicationapp(argc,argv); app(argc,argv); hello.cpp Application turns turnsinto intoa stand by by state statewaiting for formessages. QLabel QLabel *label *label = new newqlabel("hello Qt!",0); Qt!",0); }} app.setmainwidget(label); label->show(); label->show(); return returnapp.exec(); Give Givethe thedefinitions of ofused usedclasses Create a QApplication object Create a QLabel object with withno no parent Set Setthe thelabel labelas asthe theapplication s main mainwidget Make the thelabel labelvisible Pass Passapplication s control on onqt. ( event loop ) 17

18 HTML - style formatting #include <qapplication.h> #include <qlabel.h> hello.cpp int int main(int argc,char *argv[]) *argv[]) { QApplication app(argc,argv); QLabel QLabel *label *label = new newqlabel("<h1><i>hello</i>" "<font "<font color=red> Qt!</font></h2>",0); } app.setmainwidget(label); label->show(); return returnapp.exec(); 18

19 Compiling & Running Directory s Contents hello.cpp hello.exe hello.obj hello.pro Makefile qmake project qmake hello.pro nmake hello hello 19

20 20

21 QPushButton The Quit application QApplication #include #include <qapplication.h> #include #include <qpushbutton.h> quit.cpp int int main(int main(int argc, argc, char char *argv[]) *argv[]) {{ QApplication QApplication app(argc,argv); app(argc,argv); QPushButton QPushButton *button *button = new new QPushButton("Quit",0); QObject::connect(button,SIGNAL(clicked()),&app,SLOT(quit())); }} app.setmainwidget(button); button->show(); button->show(); return return app.exec(); app.exec(); 21

22 Responding to User Actions #include #include <qapplication.h> <qapplication.h> #include #include <qpushbutton.h> <qpushbutton.h> quit.cpp int int main(int main(intargc, argc, char char *argv[]) *argv[]) {{ QApplication QApplicationapp(argc,argv); app(argc,argv); QPushButton QPushButton *button *button = new newqpushbutton("quit",0); QObject::connect(button,SIGNAL(clicked()),&app,SLOT(quit())); }} app.setmainwidget(button); button->show(); button->show(); return returnapp.exec(); Give Givethe thedefinitions of ofused usedclasses Create a QApplication object Create a QPushButton object with withno no parent Make connection to torespond Set Setthe thebutton as asthe theapplication s main mainwidget Make the thebutton visible Pass Passapplication s control on onqt. 22

23 macros QObject::connect(button,SIGNAL(clicked()),&app,SLOT(quit())); member function of ofthe theqobject class class 23

24 Making Connections button clicked() quit() application QObject::connect(button,SIGNAL(clicked()),&app,SLOT(quit())); 24

25 Compiling & Running Directory s Contents quit.cpp quit.exe quit.obj quit.pro Makefile qmake project qmake o o Makefile quit.pro nmake quit quit 25

26 Numbers application form.h form.h form.cpp form.cpp main.cpp main.cpp Form FormClass repesenting the the main mainwindow 26

27 Form s Design Caption QVBox QHBox QSpinBox QSlider QEditLine 27

28 QSpinBox Classes QSlider QHBox QLineEdit QVBox Form QApplication 28

29 Modularization form.h form.cpp main.cpp 29

30 Form Class - Declaration #ifndef #ifndef FORM_H FORM_H #define #define FORM_H FORM_H #include #include <qwidget.h> <qwidget.h> #include #include <qvbox.h> <qvbox.h> form.h class class QHBox; QHBox; class class QSpinBox; QSpinBox; class class QSlider; QSlider; class class QLineEdit; QLineEdit; class class Form: Form: public public QVBox QVBox { { Forward declaration Form inherits from QVBox public: public: Form(QWidget Form(QWidget *parent=0, *parent=0, const const char char *name=0); *name=0); constructor private: private: }; }; #endif #endif QVBox QVBox *vbox; *vbox; QHBox QHBox *hbox; *hbox; QSpinBox QSpinBox *spinbox; *spinbox; QSlider QSlider *slider; *slider; QLineEdit QLineEdit *lineedit; *lineedit; Pointers 30

31 #include #include <qvbox.h> <qvbox.h> #include #include <qhbox.h> <qhbox.h> #include #include <qspinbox.h> <qspinbox.h> #include #include <qslider.h> <qslider.h> #include #include <qlineedit.h> <qlineedit.h> #include #include "form.h "form.h Form Class - Implementation form.cpp Form::Form(QWidget Form::Form(QWidget *parent, *parent, const const char char *name) *name) : : QVBox(parent,name) QVBox(parent,name) { { setmargin(6); setmargin(6); setspacing(6); setspacing(6); hbox hbox = = new new QHBox(this); QHBox(this); lineedit lineedit = = new new QLineEdit(this); QLineEdit(this); hbox->setmargin(6); hbox->setmargin(6); hbox->setspacing(6); hbox->setspacing(6); spinbox spinbox = = new new QSpinBox(hbox); QSpinBox(hbox); slider slider = = new new QSlider(Qt::Horizontal,hbox); QSlider(Qt::Horizontal,hbox); slider->setrange(0,10); slider->setrange(0,10); spinbox->setrange(0,10); spinbox->setrange(0,10); Caption QVBox QHBox QSpinBox QSlider QLineEdit } } spinbox->setvalue(5); spinbox->setvalue(5); connect(slider,signal(valuechanged(int)),spinbox,slot(setvalue(int))); connect(slider,signal(valuechanged(int)),spinbox,slot(setvalue(int))); connect(spinbox,signal(valuechanged(int)),slider,slot(setvalue(int))); connect(spinbox,signal(valuechanged(int)),slider,slot(setvalue(int))); 31

32 Numbers application s main program #include #include <qapplication.h> <qapplication.h> #include #include"form.h" int int main(int main(intargc, argc, char char *argv[]) *argv[]) {{ QApplication QApplicationapp(argc,argv); app(argc,argv); Form Form *form *form = new newform; app.setmainwidget(form); form->show(); form->show(); return returnapp.exec(); }} main.cpp Caption QVBox QHBox QSpinBox QSlider QLineEdit 32

33 Creating Custom Slots - Declaration.... class class Form: Form: public public QVBox form.h QVBox {{ Q_OBJECT Q_OBJECT macro consists of offunction declarations for formoc. public: public: Form(QWidget *parent=0, const const char char *name=0); private: private: QHBox QHBox *hbox; *hbox; QSpinBox *spinbox; QSlider QSlider *slider; *slider; QLineEdit *lineedit; *lineedit; QString QString words[11]; void void initwords(); public public slots: slots: void void sayasword(int i); i); }; };.... Words of ofnumbers are are stored in inan anarray. array. moc: meta object compiler This Thisis is not nota standard C++ C++ element. It Itwill willbe be transferred into into standard C++ C++ code codeby bymoc. 33

34 Custom Slot Implementation Form::Form(QWidget *parent, *parent, const const char char *name) *name):qvbox(parent,name) {{ setmargin(6); setspacing(6); form.cpp.... connect(slider,signal(valuechanged(int)),spinbox,slot(setvalue(int))); connect(spinbox,signal(valuechanged(int)),slider,slot(setvalue(int))); connect(slider,signal(valuechanged(int)),this,slot(sayasword(int))); }} initwords(); spinbox->setvalue(5); custom slot slot The The initial value valuemust be be set set AFTER establishing connections. 34

35 Custom Slot Implementation void void Form::sayAsWord(int i) i) {{ lineedit->settext(words[i]); }} form.cpp void void Form::initWords() {{ words[0] words[0] = "null"; "null"; words[1] words[1] = "one"; "one";.... words[10] = "ten"; "ten"; }} 35

36 Compiling & Running qmake project qmake numbers.pro nmake numbers.pro ########################## Automatically Automatically generated generated by by ########################## TEMPLATE TEMPLATE = app app INCLUDEPATH INCLUDEPATH += +=.. ## Input Input HEADERS HEADERS += += form.h form.h SOURCES SOURCES += += form.cpp form.cppmain.cpp main.cpp 36

37 Memory Management & Parent-Children Relationship Form QHBox(hbox) list of children The The only onlyobjects we wehave havetoto delete are arethe theobjects we wecreate with withnew newand andthat thathave haveno no parents. QSpinBox(spinBox) QSilder(slider) Main Mainwidget is is automatically deleted after afterclose. QLineEdit(lineEdit) We Wehave haveused usednew newbut butwe wedo do not nothave havetoto delete them themeither. 37

38 38

39 Layout Manager Object to manage the size and position of the widget. Layout manager classes are arenot notwidgets, but butthey theycan have haveparent and andchidren. 39

40 #ifndef #ifndefform_h #define #defineform_h #include #include <qwidget.h> <qwidget.h> form.h class classqspinbox; class classqslider; class classqlineedit; class classform: public publicqwidget {{ public: public: Form(QWidget Form(QWidget *parent=0, *parent=0, const constchar char *name=0); *name=0); private: private: QSpinBox QSpinBox *spinbox; *spinbox; QSlider QSlider *slider; *slider; QLineEdit QLineEdit *lineedit; *lineedit; }; }; #endif #endif 40

41 Form::Form(QWidget *parent, *parent, const constchar char *name) *name): : QWidget(parent,name) {{ spinbox spinbox = new newqspinbox(this); #include slider slider = new newqslider(qt::horizontal,this); #include <qlayout.h> <qlayout.h> #include slider->setrange(0,10); #include <qspinbox.h> <qspinbox.h> #include spinbox->setrange(0,10); #include <qslider.h> <qslider.h> #include lineedit lineedit = new newqlineedit(this); <qlineedit.h> <qlineedit.h> #include #include"form.h" QHBoxLayout QHBoxLayout *toplayout *toplayout = new newqhboxlayout; //Layout //Layoutwith withno no parent parent toplayout->addwidget(spinbox); toplayout->addwidget(slider); QVBoxLayout QVBoxLayout *mainlayout *mainlayout = new newqvboxlayout(this); //Layout //Layoutwith with "this" "this" parent parent mainlayout->addlayout(toplayout); mainlayout->addwidget(lineedit); mainlayout->setmargin(11); mainlayout->setspacing(6); connect(slider,signal(valuechanged(int)),spinbox,slot(setvalue(int))); connect(spinbox,signal(valuechanged(int)),slider,slot(setvalue(int))); } spinbox->setvalue(5); //Set //Setvalue valueafter connections!! connections!! } form.cpp 41

42 Caption Caption QVBox mainlayout mainlayout QHBox QSpinBox QSlider QSpinBox QSlider toplayout toplayout QLineEdit QLineEdit 42

43 Parent - children relationship mainlayout mainlayout Form Caption QSpinBox (spinbox) QSlider (slider) QSpinBox QLineEdit QSlider QLineEdit (lineedit) QVBoxLayout(mainLayout) toplayout toplayout QHBoxLayout(topLayout) Main Mainwidget and andits itschildrens are areautomatically deleted after after close. 43

44 Form QSpinBox (spinbox) QSlider (slider) QLineEdit (lineedit) QVBoxLayout(mainLayout) First FirsttopLayout is is created with with no no parent, but butwe wedo donot nothave to tomanage its itsdeletion, because it itwill willbe be added to tothe the mainlayout and andtherefore mainlayout became its itsparent. QHBoxLayout(topLayout) to todelete deleteor ornot nottoto delete? delete? QHBoxLayout QHBoxLayout *toplayout *toplayout = new newqhboxlayout; //Layout //Layoutwith withno no parent parent toplayout->addwidget(spinbox); toplayout->addwidget(slider); QVBoxLayout QVBoxLayout *mainlayout *mainlayout = new newqvboxlayout(this); //Layout //Layoutwith with "this" "this" parent parent mainlayout->addlayout(toplayout); //mainlayout //mainlayoutwill willbe be the theparent parentfor fortoplayout mainlayout->addwidget(lineedit); // this // this (Form) remains remainsthe theparent parentfor forlineedit 44

45 45

46 The.ui file and the generated C++ code Qt designer form.ui form.ui UIC form.h form.h Reads and writes Reading Generates #includes Tool Generated source file Revision controlled source file form.cpp form.cpp main.cpp main.cpp 46

47 The subclassing approach Qt designer formbase.ui formbase.ui Inheritance UIC formbase.h formbase.h form.h form.h Reads and writes Reading Generates #includes Tool Generated source file Revision controlled source file formbase.cpp formbase.cpp form.cpp form.cpp File Fileformbase.h és és a formbase.cpp are are generated after aftermodification of ofthe theform. Application specific functions will willbe be added in inthe thesubclass. main.cpp main.cpp 47

48 The ui.h extension approach Qt designer Application specific functions can can be be given given in in form.ui.h file. file. form.ui form.ui UIC form.ui.h form.ui.h form.h form.h Reads and writes Reading Generates #includes Tool Generated source file Revision controlled source file form.cpp form.cpp main.cpp main.cpp 48

49 Starting Qt Designer 49

50 The QtDesigner s screen ProjectOverview Toolbox ObjectExplorer Properties Editor/ Signal Handlers 50

51 File/New/C++ Project 51

52 File/New/Widget 52

53 53

54 Laying Out Elements 54

55 Conneting widgets: Edit/Connections <connections> <connection> form.ui <sender>slider</sender> <signal>valuechanged(int)</signal> <receiver>spinbox</receiver> <slot>setvalue(int)</slot> </connection> <connection> <sender>spinbox</sender> <signal>valuechanged(int)</signal> <receiver>slider</receiver> <slot>setvalue(int)</slot> </connection> </connections> 55

56 Declaring variable 56

57 Creating Custom Slots Edit/Slots....../New Function Edit/Connections 57

58 void void Form::sayAsWord( int int i) i) {{ lineedit->settext(words[i]); }} 58

59 Creating custom functions and the constructor Edit/Slots....../New Function void void Form::init() {{ spinbox->setmaxvalue(10); slider->setmaxvalue(10); initwords(); spinbox->setvalue(5); }} Creating Creatingthe theform Forminit() function functionwill willbe be performed automatically. void void Form::initWords() {{ words[0] words[0] = "null"; "null";.... words[10] = "ten"; "ten"; }} 59

60 Adding main function File/New....../C++ Main Main file file 60

61 The generated main.cpp program #include <qapplication.h> #include #include"form.h" int int main( main( int int argc, argc, char char ** ** argv argv )) {{ QApplication a( a( argc, argc, argv argv ); ); Form Form w; w; w.show(); a.connect( &a, &a, SIGNAL( SIGNAL( lastwindowclosed() ), ),&a, SLOT( SLOT( quit() quit() )));); return return a.exec(); a.exec(); }} 61

62 Compiling & Running 1. qmake project 2. qmake words.pro 3. make 62

63 Project file of Words application TEMPLATE = app INCLUDEPATH +=. # Input HEADERS += form.ui.h INTERFACES += form.ui SOURCES += main.cpp 1. qmake project 2. qmake -o Makefile words.pro 3. nmake 4. words 63

64 Extending the functionality of the program Task: Task: Let Letus usmake makeitit works works vice vice verse. verse. Typing 64

65 Defining a new slot 65

66 Implementing the new slot void void Form::slotTextChanged_( const const QString QString & s s )) {{ bool bool l=false; l=false; for for (int (int i=0; i=0; i< i< (int) (int) sizeof(words)/sizeof(words[0]) && &&!l;i++) {{ if(words[i]==s) {{ l=true; l=true; slider->setvalue(i); }} }} }} 66

67 Connecting the widgets 67

68 Compiling & Running 68

69 69

C++ GUI Programming with Qt 3

C++ GUI Programming with Qt 3 Welcome from Budapest Welcome from ELTE University 1 Rozália Szabó Nacsa Eötvös Loránd University, Budapest Faculty of Informatics nacsa@inf.elte.hu 2 Qt Overview Qt is a complete C++ application development

More information

C++ GUI Programming with Qt 3. Rozália Szabó Nacsa Eötvös Loránd University, Budapest

C++ GUI Programming with Qt 3. Rozália Szabó Nacsa Eötvös Loránd University, Budapest C++ GUI Programming with Qt 3 Rozália Szabó Nacsa Eötvös Loránd University, Budapest nacsa@inf.elte.hu 1 The Task QMainWindow (RichEdit) QTextEdit(textEdit) 2 The ui.h extension approach Qt designer Application

More information

Lab 12: GUI programming with Qt

Lab 12: GUI programming with Qt Lab 12: GUI programming with Comp Sci 1585 Data Structures Lab: Tools for Computer Scientists Outline 1 Outline 1 (Pronounced cute ) https://www.qt.io/what-is-qt/ https://showroom.qt.io/ https://en.wikipedia.org/wiki/_(software)

More information

Object-Oriented Programming

Object-Oriented Programming iuliana@cs.ubbcluj.ro Babes-Bolyai University 2018 1 / 33 Overview 1 2 3 4 5 6 2 / 33 I Qt is a cross-platform application and UI framework in C++. Using Qt, one can write GUI applications once and deploy

More information

QT/KDE Research Paper CS B 27 February 2002

QT/KDE Research Paper CS B 27 February 2002 QT/KDE Research Paper CS 159.3 B 27 February 2002 Submitted by: AY-AD CAJIPE CHAN CHENG MAGDARAOG KDE Facts and Figures KDE is a big project. While it is very hard to quantify what this means exactly,

More information

Qt-Based Implementation of Low Level ROOT Graphical Layer

Qt-Based Implementation of Low Level ROOT Graphical Layer Qt-Based Implementation of Low Level ROOT Graphical Layer By V.Fine ROOT Low Level Graphics Level It is well-known that ROOT package has been ported to many different platforms which include the various

More information

OO for GUI Design (contd.) Questions:

OO for GUI Design (contd.) Questions: OO for GUI Design (contd.) Questions: 1 1. What is a window manager and what are its responsibilities? 2 2. How would you define an event in the context of GUI programming? 3 3. What is the first thing

More information

Document Revision No.: 1 Revised: 03/12/09 RIT KGCOE MSD Program. P09027 Upper Extremity Motion Capture System. Software Manual

Document Revision No.: 1 Revised: 03/12/09 RIT KGCOE MSD Program. P09027 Upper Extremity Motion Capture System. Software Manual P09027 Upper Extremity Motion Capture System Software Manual By: Melissa Gilbert, Dan Chapman, Adey Gebregiorgis, Pooja Nanda, Alan Smith and J.J Guerrette Table of contents 1 GUI USER MANUAL... 2 1.1

More information

ECE 462 Object-Oriented Programming using C++ and Java. Graphical User Interface

ECE 462 Object-Oriented Programming using C++ and Java. Graphical User Interface ECE 462 Object-Oriented Programming using C++ and Java Graphical User Interface Yung-Hsiang Lu yunglu@purdue.edu YHL Graphical User Interface 1 GUI using C++ / Qt YHL Graphical User Interface 2 Qt + Eclipse

More information

Qt Essentials - Objects Module

Qt Essentials - Objects Module Qt Essentials - Objects Module Training Course Visit us at http://qt.digia.com Produced by Digia Plc. Material based on Qt 5.0, created on September 27, 2012 Digia Plc. Module: Signals & Slots Event Handling

More information

Qt Essentials - Fundamentals of Qt Module

Qt Essentials - Fundamentals of Qt Module Qt Essentials - Fundamentals of Qt Module Qt Essentials - Training Course Produced by Nokia, Qt Development Frameworks Material based on Qt 4.7, created on December 15, 2010 http://qt.nokia.com 1/28 Module:

More information

2. The quiz screen showing the question, text field (QLineEdit in QT) for the answer and the Next Question button

2. The quiz screen showing the question, text field (QLineEdit in QT) for the answer and the Next Question button SFDV4001 OOP with C++ and UI Part 2 of the Quiz System project implementing the user interface In this part of the project use will use QT to build the GUI for the project you have done in part 1. Instead

More information

Qt Essentials - Fundamentals of Qt Module

Qt Essentials - Fundamentals of Qt Module Qt Essentials - Module Training Course Visit us at http://qt.digia.com Produced by Digia Plc. Material based on Qt 5.0, created on September 27, 2012 Digia Plc. The Story of Qt Developing a Hello World

More information

Exercises Lecture 3 Layouts and widgets

Exercises Lecture 3 Layouts and widgets Exercises Lecture 3 Layouts and widgets Aim: Duration: This exercise will help you explore and understand Qt's widgets and the layout approach to designing user interfaces. 2h The enclosed Qt Materials

More information

INSTRUCTIONS: GOOD LUCK! [TURN OVER]

INSTRUCTIONS: GOOD LUCK! [TURN OVER] INSTRUCTIONS: 1. This examination paper consists of 6 pages. 2. This is a closed book examination. 3. The mark for each question is given in brackets next to the question. 4. Answer all five questions

More information

Qt Essentials - Widgets Module

Qt Essentials - Widgets Module Qt Essentials - Module Training Course Visit us at http://qt.digia.com Produced by Digia Plc. Material based on Qt 5.0, created on September 27, 2012 Digia Plc. Module: Common Layout Management Guidelines

More information

Praktische Aspekte der Informatik

Praktische Aspekte der Informatik Praktische Aspekte der Informatik Moritz Mühlhausen Prof. Marcus Magnor https://graphics.tu-bs.de/teaching/ws1718/padi/ 1 Your Proposal It s due 17.11.2017! https://graphics.tu-bs.de/teaching/ws1718/padi/

More information

Tuesday, 9 March Introduction to Qt

Tuesday, 9 March Introduction to Qt Introduction to Qt Qt Qt supports the development of multi-platform GUI applications It has a write once, compile anywhere approach Using a single source tree and a simple recompilation applications can

More information

Graphical User Interfaces

Graphical User Interfaces Chapter 14 Graphical User Interfaces So far, we have developed programs that interact with the user through the command line, where the user has to call a Python program by typing its name and adding the

More information

SERIOUS ABOUT SOFTWARE. Qt Core features. Timo Strömmer, May 26,

SERIOUS ABOUT SOFTWARE. Qt Core features. Timo Strömmer, May 26, SERIOUS ABOUT SOFTWARE Qt Core features Timo Strömmer, May 26, 2010 1 Contents C++ refresher Core features Object model Signals & slots Event loop Shared data Strings Containers Private implementation

More information

Friday, 4 January 13. Introduction to Qt

Friday, 4 January 13. Introduction to Qt Introduction to Qt What is Qt? Qt is a cross platform development framework written in C++. C++ framework bindings for other languages Python, Ruby, C#, etcetera Original for user interfaces now for everything

More information

Contents ROOT/Qt Integration Interfaces

Contents ROOT/Qt Integration Interfaces Contents 1 ROOT/Qt Integration Interfaces 3 1.1 Qt-ROOT Implementation of TVirtualX Interface (BNL)......................... 3 1.1.1 Installation............................................... 3 1.1.2

More information

The following article is about how to develop a high quality plugin.

The following article is about how to develop a high quality plugin. Brief Introduction In Deepin Desktop Environment, the Dock not only has highly customziable appearance, but also provided API document. Every community developer can extend it by your own interest to enrich

More information

Luis Ibáñez William Schroeder Insight Software Consortium. ITK and Graphical User Interface

Luis Ibáñez William Schroeder Insight Software Consortium. ITK and Graphical User Interface Luis Ibáñez William Schroeder Insight Software Consortium ITK and Graphical User Interface Insight ITK is not Visualization ITK is not Graphic Interface ITK is image Segmentation and Registration ITK +

More information

Mar :51 gltexobj.cpp

Mar :51 gltexobj.cpp Page 1/4 / $Id: qt/gltexobj.cpp 3.1.2 edited Nov 8 2002 $ Copyright (C) 1992-2002 Trolltech AS. All rights reserved. This file is part of an example program for Qt. This example program may be used, distributed

More information

Integrating QML with C++

Integrating QML with C++ Integrating QML with C++ Qt Essentials - Training Course Produced by Nokia, Qt Development Frameworks Material based on Qt 4.7, created on January 18, 2011 http://qt.nokia.com 1/60 Module: Integrating

More information

CopperSpice: A Pure C++ GUI Library. Barbara Geller & Ansel Sermersheim CPPCon - September 2015

CopperSpice: A Pure C++ GUI Library. Barbara Geller & Ansel Sermersheim CPPCon - September 2015 CopperSpice: A Pure C++ GUI Library Barbara Geller & Ansel Sermersheim CPPCon - September 2015 1 Introduction What is CopperSpice Why we developed CopperSpice Drawbacks of Qt Advantages of CopperSpice

More information

Qt-Interface For Volume Visualization

Qt-Interface For Volume Visualization Qt-Interface For Volume Visualization Practical Course Computer Graphics For Advanced Supervising Dr. Susanne Krömker Stefan Becker & Ronald Lautenschläger Outline 1. Terms you should know 2. Comparison

More information

Designing Interactive Systems II

Designing Interactive Systems II Designing Interactive Systems II Computer Science Graduate Programme SS 2010 Prof. Dr. RWTH Aachen University http://hci.rwth-aachen.de 1 Review 2 Review Web 2.0 in keywords 2 Review Web 2.0 in keywords

More information

Review. Designing Interactive Systems II. Introduction. Web 2.0 in keywords GWT Cappuccino HTML5. Cross platform GUI Toolkit

Review. Designing Interactive Systems II. Introduction. Web 2.0 in keywords GWT Cappuccino HTML5. Cross platform GUI Toolkit Review Designing Interactive Systems II Computer Science Graduate Programme SS 2010 Prof. Dr. RWTH Aachen University Web 2.0 in keywords GWT Cappuccino HTML5 http://hci.rwth-aachen.de 1 2 Introduction

More information

Exercises Lecture 2 The Qt Object Model and Signal Slot Mechanism

Exercises Lecture 2 The Qt Object Model and Signal Slot Mechanism Exercises Lecture 2 The Qt Object Model and Signal Slot Mechanism Qt in Education Aim: Duration: This exercise will help you explore the Qt object model (inheritance, properties, memory management) and

More information

NHERI SIMCENTER PROGRAMMING BOOTCAMP JULY 30 THROUGH AUGUST 3, 2018, AT UC BERKELEY S RICHMOND FIELD STATION. GUI Development

NHERI SIMCENTER PROGRAMMING BOOTCAMP JULY 30 THROUGH AUGUST 3, 2018, AT UC BERKELEY S RICHMOND FIELD STATION. GUI Development NHERI SIMCENTER PROGRAMMING BOOTCAMP JULY 30 THROUGH AUGUST 3, 2018, AT UC BERKELEY S RICHMOND FIELD STATION GUI Development OUTLINE GUI Design Fundamentals The Qt Framework Common Data Types/Classes Building

More information

Python GUIs. $ conda install pyqt

Python GUIs. $ conda install pyqt PyQT GUIs 1 / 18 Python GUIs Python wasn t originally desined for GUI programming In the interest of "including batteries" the tkinter was included in the Python standard library tkinter is a Python wrapper

More information

QTango QTWatcher and QTWriter classes

QTango QTWatcher and QTWriter classes Elettra Sincrotrone Trieste QTWatcher and QTWriter classes mailto: giacomo.strangolino@elettra.trieste.it QTWatcher Reads tango variables using Qtango; QObject or base types can be attached(); on new data,

More information

QObject. An important class to become familiar with is the one from which all Qt Widgets are derived: QObject.

QObject. An important class to become familiar with is the one from which all Qt Widgets are derived: QObject. ezus_138004_ch09.qxd 8/4/06 9:43 AM Page 191 9C H A P T E R 9 QObject An important class to become familiar with is the one from which all Qt Widgets are derived: QObject. 9.1 QObject s Child Managment..........

More information

Image Processing with Qt BY KLAUDIO VITO

Image Processing with Qt BY KLAUDIO VITO Image Processing with Qt BY KLAUDIO VITO CSC Senior Design I Prof. George Wolberg May 22, 2016 Table of contents 1. Introduction pg. 2 2. Qt pg. 3 2.1. What is Qt? pg. 3 2.2 Qt Widgets Used pg. 6 3. Image

More information

Qt Introduction. Topics. C++ Build Process. Ch & Ch 3. 1) What's Qt? 2) How can we make a Qt console program? 3) How can we use dialogs?

Qt Introduction. Topics. C++ Build Process. Ch & Ch 3. 1) What's Qt? 2) How can we make a Qt console program? 3) How can we use dialogs? Topics Qt Introduction Ch 1.5 1.11 & Ch 3 1) What's Qt? 2) How can we make a Qt console program? 3) How can we use dialogs? Q: How do you pronounce Qt? A: This puppy is... 23/01/12 CMPT 212 Slides #5 Dr.

More information

Lab 1: First Steps in C++ - Eclipse

Lab 1: First Steps in C++ - Eclipse Lab 1: First Steps in C++ - Eclipse Step Zero: Select workspace 1. Upon launching eclipse, we are ask to chose a workspace: 2. We select a new workspace directory (e.g., C:\Courses ): 3. We accept the

More information

Using the GeoX Framework

Using the GeoX Framework Using the GeoX Framework Michael Wand February 3rd, 2014 1. Introduction GeoX is a collection of C++ libraries for experimenting with geometric modeling techniques (GeoX = geometry experiments). It consists

More information

Oh my. Maya is Qt! Kristine Middlemiss, Autodesk Developer Consultant, Autodesk Developer Network

Oh my. Maya is Qt! Kristine Middlemiss, Autodesk Developer Consultant, Autodesk Developer Network Oh my. Maya is Qt! Kristine Middlemiss, Autodesk Developer Consultant, Autodesk Developer Network 1 2 Biography Topics» Introducing Qt» How Qt fits into Maya» Ways to work with Qt»Qt Designer with Maya

More information

Qt in Education. The Qt object model and the signal slot concept

Qt in Education. The Qt object model and the signal slot concept Qt in Education The Qt object model and the signal slot concept. 2012 Digia Plc. The enclosed Qt Materials are provided under the Creative Commons Attribution-Share Alike 2.5 License Agreement. The full

More information

GUI in C++ PV264 Advanced Programming in C++ Nikola Beneš Jan Mrázek Vladimír Štill. Faculty of Informatics, Masaryk University.

GUI in C++ PV264 Advanced Programming in C++ Nikola Beneš Jan Mrázek Vladimír Štill. Faculty of Informatics, Masaryk University. GUI in C++ PV264 Advanced Programming in C++ Nikola Beneš Jan Mrázek Vladimír Štill Faculty of Informatics, Masaryk University Spring 2017 PV264: GUI in C++ Spring 2017 1 / 23 Organisation Lectures this

More information

C++ Important Questions with Answers

C++ Important Questions with Answers 1. Name the operators that cannot be overloaded. sizeof,.,.*,.->, ::,? 2. What is inheritance? Inheritance is property such that a parent (or super) class passes the characteristics of itself to children

More information

Why C++? C vs. C Design goals of C++ C vs. C++ - 2

Why C++? C vs. C Design goals of C++ C vs. C++ - 2 Why C++? C vs. C++ - 1 Popular and relevant (used in nearly every application domain): end-user applications (Word, Excel, PowerPoint, Photoshop, Acrobat, Quicken, games) operating systems (Windows 9x,

More information

INTRODUCING Qt The Cross-Platform C++ Development Framework. Presented by Cody Bittle

INTRODUCING Qt The Cross-Platform C++ Development Framework. Presented by Cody Bittle INTRODUCING Qt The Cross-Platform C++ Development Framework Presented by Cody Bittle OVERVIEW 1. About Trolltech 2. Introducing Qt 3. Why Qt? Section One ABOUT TROLLTECH About Trolltech COMPANY INFORMATION

More information

QTangoCore. Elettra Sincrotrone Trieste. Giacomo Strangolino. A multi threaded framework to develop Tango applications

QTangoCore. Elettra Sincrotrone Trieste. Giacomo Strangolino. A multi threaded framework to develop Tango applications Giacomo Strangolino Elettra Sincrotrone Trieste QTangoCore A multi threaded framework to develop Tango applications mailto: giacomo.strangolino@elettra.trieste.it Part I QtangoCore architecture overview

More information

Asynchronous Database Access with Qt 4.x

Asynchronous Database Access with Qt 4.x Asynchronous Database Access with Qt 4.x Dave Berton Abstract How to code around the default synchronous database access in Qt 4. The database support in Qt 4.x is quite robust. The library includes drivers

More information

Introduction to CGAL. Constantinos Tsirogiannis. TU/Eindhoven

Introduction to CGAL. Constantinos Tsirogiannis. TU/Eindhoven TU/Eindhoven CGAL? CGAL = Computational Geometry Algorithms Library: CGAL? CGAL = Computational Geometry Algorithms Library: A library of Geometric algorithms and data structures. CGAL? CGAL = Computational

More information

Today we spend some time in OO Programming (Object Oriented). Hope you did already work with the first Starter and the box at:

Today we spend some time in OO Programming (Object Oriented). Hope you did already work with the first Starter and the box at: maxbox Starter 2 Start with OO Programming 1.1 First Step Today we spend some time in OO Programming (Object Oriented). Hope you did already work with the first Starter and the box at: http://www.softwareschule.ch/download/maxbox_starter.pdf

More information

CE221 Programming in C++ Part 1 Introduction

CE221 Programming in C++ Part 1 Introduction CE221 Programming in C++ Part 1 Introduction 06/10/2017 CE221 Part 1 1 Module Schedule There are two lectures (Monday 13.00-13.50 and Tuesday 11.00-11.50) each week in the autumn term, and a 2-hour lab

More information

QROSE Manual. Jose Gabriel de Figueiredo Coutinho

QROSE Manual. Jose Gabriel de Figueiredo Coutinho QROSE Manual Jose Gabriel de Figueiredo Coutinho (jgfc@doc.ic.ac.uk) P a g e 2 SECTION 1 INTRODUCTION QROSE is a C++ library for building graphical user-interfaces for ROSE tools. It s main goal is to

More information

Selected PyQt Widgets

Selected PyQt Widgets B Selected PyQt Widgets The screenshots shown here were taken on Linux using KDE to provide an eye-pleasing consistency. In the body of the book, screenshots are shown for Windows, Linux, and Mac OS X,

More information

Lab 2: ADT Design & Implementation

Lab 2: ADT Design & Implementation Lab 2: ADT Design & Implementation By Dr. Yingwu Zhu, Seattle University 1. Goals In this lab, you are required to use a dynamic array to design and implement an ADT SortedList that maintains a sorted

More information

Hello, World! in C. Johann Myrkraverk Oskarsson October 23, The Quintessential Example Program 1. I Printing Text 2. II The Main Function 3

Hello, World! in C. Johann Myrkraverk Oskarsson October 23, The Quintessential Example Program 1. I Printing Text 2. II The Main Function 3 Hello, World! in C Johann Myrkraverk Oskarsson October 23, 2018 Contents 1 The Quintessential Example Program 1 I Printing Text 2 II The Main Function 3 III The Header Files 4 IV Compiling and Running

More information

G52CPP C++ Programming Lecture 9

G52CPP C++ Programming Lecture 9 G52CPP C++ Programming Lecture 9 Dr Jason Atkin http://www.cs.nott.ac.uk/~jaa/cpp/ g52cpp.html 1 Last lecture const Constants, including pointers The C pre-processor And macros Compiling and linking And

More information

Qt Essentials - Basic Types Module

Qt Essentials - Basic Types Module Qt Essentials - Basic Types Module Training Course Visit us at http://qt.digia.com Produced by Digia Plc. Material based on Qt 5.0, created on September 27, 2012 Digia Plc. Qt's Object Model QObject QWidget

More information

CS 326 Operating Systems C Programming. Greg Benson Department of Computer Science University of San Francisco

CS 326 Operating Systems C Programming. Greg Benson Department of Computer Science University of San Francisco CS 326 Operating Systems C Programming Greg Benson Department of Computer Science University of San Francisco Why C? Fast (good optimizing compilers) Not too high-level (Java, Python, Lisp) Not too low-level

More information

FINAL TERM EXAMINATION SPRING 2010 CS304- OBJECT ORIENTED PROGRAMMING

FINAL TERM EXAMINATION SPRING 2010 CS304- OBJECT ORIENTED PROGRAMMING FINAL TERM EXAMINATION SPRING 2010 CS304- OBJECT ORIENTED PROGRAMMING Question No: 1 ( Marks: 1 ) - Please choose one Classes like TwoDimensionalShape and ThreeDimensionalShape would normally be concrete,

More information

Qt for Device Creation

Qt for Device Creation Qt for Device Creation Speeding up ROI & Time-to-Market with Qt Andy Nichols Software Engineer, Qt R&D, Oslo Overview Problems facing Device Creators How Qt for Device Creation addresses those Problems

More information

Prof. Tiago G. S. Carneiro DECOM - UFOP. Threads em Qt. Prof. Tiago Garcia de Senna Carneiro

Prof. Tiago G. S. Carneiro DECOM - UFOP. Threads em Qt. Prof. Tiago Garcia de Senna Carneiro Threads em Qt Prof. Tiago Garcia de Senna Carneiro 2007 Thread - Fundamentos Uma thread é um processo leve, portanto possui um fluxo de execução independente e troca de contexto mais rápida que um processo.

More information

Chapter 6 Introduction to Defining Classes

Chapter 6 Introduction to Defining Classes Introduction to Defining Classes Fundamentals of Java: AP Computer Science Essentials, 4th Edition 1 Objectives Design and implement a simple class from user requirements. Organize a program in terms of

More information

CE221 Programming in C++ Part 2 References and Pointers, Arrays and Strings

CE221 Programming in C++ Part 2 References and Pointers, Arrays and Strings CE221 Programming in C++ Part 2 References and Pointers, Arrays and Strings 19/10/2017 CE221 Part 2 1 Variables and References 1 In Java a variable of primitive type is associated with a memory location

More information

Qt Quick From bottom to top

Qt Quick From bottom to top SERIOUS ABOUT SOFTWARE Qt Quick From bottom to top Timo Strömmer, Feb 11, 2011 1 Contents Day 2 Qt core features Shared data objects Object model, signals and slots, properties Hybrid programming QML fluid

More information

Common Misunderstandings from Exam 1 Material

Common Misunderstandings from Exam 1 Material Common Misunderstandings from Exam 1 Material Kyle Dewey Stack and Heap Allocation with Pointers char c = c ; char* p1 = malloc(sizeof(char)); char** p2 = &p1; Where is c allocated? Where is p1 itself

More information

permission by Klarälvdalens Datakonsult AB.

permission by Klarälvdalens Datakonsult AB. The contents of this manual and the associated KD Chart software are the property of Klarälvdalens Datakonsult AB and are copyrighted. Any reproduction in whole or in part is strictly prohibited without

More information

EasyFlow - v Application Developer Guide

EasyFlow - v Application Developer Guide EasyFlow - v.0.2.1 Application Developer Guide June 23, 2014 i 2013 CAMELOT Biomedical Systems Srl. The information in this document is proprietary to CAMELOT. No part of this publication may be reproduced,

More information

Object-Oriented Programming, Iouliia Skliarova

Object-Oriented Programming, Iouliia Skliarova Object-Oriented Programming, Iouliia Skliarova CBook a = CBook("C++", 2014); CBook b = CBook("Physics", 1960); a.display(); b.display(); void CBook::Display() cout

More information

Threads. What is a thread? Motivation. Single and Multithreaded Processes. Benefits

Threads. What is a thread? Motivation. Single and Multithreaded Processes. Benefits CS307 What is a thread? Threads A thread is a basic unit of CPU utilization contains a thread ID, a program counter, a register set, and a stack shares with other threads belonging to the same process

More information

Leow Wee Kheng CS3249 User Interface Development. Windowing Systems CS3249

Leow Wee Kheng CS3249 User Interface Development. Windowing Systems CS3249 Leow Wee Kheng User Interface Development 1 1 Modern computers come with graphical user interfaces... 2 2 Windows XP 3 3 Ubuntu 4 4 What is needed for GUI to work? What is needed for drop-down menu to

More information

CSCE 110 PROGRAMMING FUNDAMENTALS

CSCE 110 PROGRAMMING FUNDAMENTALS CSCE 110 PROGRAMMING FUNDAMENTALS WITH C++ Prof. Amr Goneid AUC Part 15. Dictionaries (1): A Key Table Class Prof. amr Goneid, AUC 1 Dictionaries(1): A Key Table Class Prof. Amr Goneid, AUC 2 A Key Table

More information

Qt + Maemo development

Qt + Maemo development ES3 Lecture 11 Qt + Maemo development Maemo Nokia's Linux based platform Almost entirely open source Nokia N770, N800, N810, N900 only models Only N900 has 3G/phone capability N900 has relatively fast

More information

ECE 3574: Dynamic Polymorphism using Inheritance

ECE 3574: Dynamic Polymorphism using Inheritance 1 ECE 3574: Dynamic Polymorphism using Inheritance Changwoo Min 2 Administrivia Survey on class will be out tonight or tomorrow night Please, let me share your idea to improve the class! 3 Meeting 10:

More information

Python GUI programming with PySide. Speaker: BigLittle Date: 2013/03/04

Python GUI programming with PySide. Speaker: BigLittle Date: 2013/03/04 Python GUI programming with PySide Speaker: BigLittle Date: 2013/03/04 CLI vs. GUI CLI (Command Line Interface) Take less resources. User have much more control of their system. Only need to execute few

More information

Containers & Iterators

Containers & Iterators Runtime Error? Topics Containers & Iterators 1) What is the best way to store a group of items? 2) How can we step through all the items? 3) What Qt classes store items? Ch 4 03/02/12 CMPT 212 Slides #8

More information

Overview. C++ Tutorial. Arrays. Pointers. Strings. Parameter Passing. Rob Jagnow

Overview. C++ Tutorial. Arrays. Pointers. Strings. Parameter Passing. Rob Jagnow Overview C++ Tutorial Rob Jagnow Pointers Arrays and strings Parameter passing Class basics Constructors & destructors Class Hierarchy Virtual Functions Coding tips Advanced topics Pointers Arrays int

More information

CSCI-243 Exam 1 Review February 22, 2015 Presented by the RIT Computer Science Community

CSCI-243 Exam 1 Review February 22, 2015 Presented by the RIT Computer Science Community CSCI-243 Exam 1 Review February 22, 2015 Presented by the RIT Computer Science Community http://csc.cs.rit.edu History and Evolution of Programming Languages 1. Explain the relationship between machine

More information

A506 / C201 Computer Programming II Placement Exam Sample Questions. For each of the following, choose the most appropriate answer (2pts each).

A506 / C201 Computer Programming II Placement Exam Sample Questions. For each of the following, choose the most appropriate answer (2pts each). A506 / C201 Computer Programming II Placement Exam Sample Questions For each of the following, choose the most appropriate answer (2pts each). 1. Which of the following functions is causing a temporary

More information

CopperSpice and the Next Generation of Signals. Barbara Geller & Ansel Sermersheim CppNow - May 2016

CopperSpice and the Next Generation of Signals. Barbara Geller & Ansel Sermersheim CppNow - May 2016 CopperSpice and the Next Generation of Signals Barbara Geller & Ansel Sermersheim CppNow - May 2016 1 Introduction Brief Introduction to CopperSpice Signals & Slots what are they boost signals CsSignal

More information

Programs. Function main. C Refresher. CSCI 4061 Introduction to Operating Systems

Programs. Function main. C Refresher. CSCI 4061 Introduction to Operating Systems Programs CSCI 4061 Introduction to Operating Systems C Program Structure Libraries and header files Compiling and building programs Executing and debugging Instructor: Abhishek Chandra Assume familiarity

More information

P2: Collaborations. CSE 335, Spring 2009

P2: Collaborations. CSE 335, Spring 2009 P2: Collaborations CSE 335, Spring 2009 Milestone #1 due by Thursday, March 19 at 11:59 p.m. Completed project due by Thursday, April 2 at 11:59 p.m. Objectives Develop an application with a graphical

More information

Advanced Systems Programming

Advanced Systems Programming Advanced Systems Programming Introduction to C++ Martin Küttler September 19, 2017 1 / 18 About this presentation This presentation is not about learning programming or every C++ feature. It is a short

More information

General Computer Science II Course: B International University Bremen Date: Dr. Jürgen Schönwälder Deadline:

General Computer Science II Course: B International University Bremen Date: Dr. Jürgen Schönwälder Deadline: General Computer Science II Course: 320102-B International University Bremen Date: 2004-04-28 Dr. Jürgen Schönwälder Deadline: 2004-05-14 Problem Sheet #7 This problem sheet focusses on C++ casting operators

More information

The KDE Library Reference Guide The Reference Guide to C++ Application Design for the K Desktop Environment (KDE) Ralf Nolden

The KDE Library Reference Guide The Reference Guide to C++ Application Design for the K Desktop Environment (KDE) Ralf Nolden The KDE Library Reference Guide The Reference Guide to C++ Application Design for the K Desktop Environment (KDE) Ralf Nolden The KDevelop Team Version 0.2, Mon July 7,

More information

20 Using OM Access. Chapter

20 Using OM Access. Chapter Chapter 20 Using OM Access This chapter describes the OM Access feature. OM Access is a module that provides the end user with access to the information in a diagram created by the OM Editor through a

More information

Course "Data Processing" Name: Master-1: Nuclear Energy Session /2018 Examen - Part A Page 1

Course Data Processing Name: Master-1: Nuclear Energy Session /2018 Examen - Part A Page 1 Examen - Part A Page 1 1. mydir directory contains three files: filea.txt fileb.txt filec.txt. How many files will be in the directory after performing the following operations: $ ls filea.txt fileb.txt

More information

Multithreaded Programming

Multithreaded Programming Multithreaded Programming The slides do not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams. September 4, 2014 Topics Overview

More information

the gamedesigninitiative at cornell university Lecture 7 C++ Overview

the gamedesigninitiative at cornell university Lecture 7 C++ Overview Lecture 7 Lecture 7 So You Think You Know C++ Most of you are experienced Java programmers Both in 2110 and several upper-level courses If you saw C++, was likely in a systems course Java was based on

More information

Developement of a framework for building tools for managing observations with a generic telescope. Alessandro Corongiu

Developement of a framework for building tools for managing observations with a generic telescope. Alessandro Corongiu Developement of a framework for building tools for managing observations with a generic telescope. Alessandro Corongiu Report N. 37, released: 30/07/2014 Reviewer: N. D'Amico, M. Murgia Contents 1 Introduction

More information

OpenPilot Gauge Version Technical Documentation. Gauge Widget Plugin API Details

OpenPilot Gauge Version Technical Documentation. Gauge Widget Plugin API Details OpenPilot Gauge Version 0.2.0 Technical Documentation Gauge Widget Plugin API Details Revision 0 Page 1 of 11 Table of Contents Revision History......3 Introduction......3 Installation under Linux......4

More information

CS 376b Computer Vision

CS 376b Computer Vision CS 376b Computer Vision 09 / 25 / 2014 Instructor: Michael Eckmann Today s Topics Questions? / Comments? Enhancing images / masks Cross correlation Convolution C++ Cross-correlation Cross-correlation involves

More information

6.S096 Lecture 4 Style and Structure

6.S096 Lecture 4 Style and Structure 6.S096 Lecture 4 Style and Structure Transition from C to C++ Andre Kessler Andre Kessler 6.S096 Lecture 4 Style and Structure 1 / 24 Outline 1 Assignment Recap 2 Headers and multiple files 3 Coding style

More information

Kick Start your Embedded Development with Qt

Kick Start your Embedded Development with Qt Kick Start your Embedded Development with Qt Increasing Return On Investment & shortening time-to-market Nils Christian Roscher-Nielsen Product Manager, The Qt Company Overview Problems facing Device Creators

More information

MFC One Step At A Time By: Brandon Fogerty

MFC One Step At A Time By: Brandon Fogerty MFC One Step At A Time 1 By: Brandon Fogerty Development Environment 2 Operating System: Windows XP/NT Development Studio: Microsoft.Net Visual C++ 2005 Step 1: 3 Fire up Visual Studio. Then go to File->New->Project

More information

Assignment 3: Inheritance

Assignment 3: Inheritance Assignment 3: Inheritance Due Wednesday March 21 st, 2012 by 11:59 pm. Submit deliverables via CourSys: https://courses.cs.sfu.ca/ Late penalty is 10% per calendar day (each 0 to 24 hour period past due).

More information

+ C++11. Qt5 with a touch of C++11. Matthew Eshleman covemountainsoftware.com

+ C++11. Qt5 with a touch of C++11. Matthew Eshleman covemountainsoftware.com + C++11 Qt5 with a touch of C++11 Matthew Eshleman covemountainsoftware.com Background - Matthew Eshleman 15+ years of embedded software development, architecture, management, and project planning Delivered

More information

Makefiles Makefiles should begin with a comment section of the following form and with the following information filled in:

Makefiles Makefiles should begin with a comment section of the following form and with the following information filled in: CS 215 Fundamentals of Programming II C++ Programming Style Guideline Most of a programmer's efforts are aimed at the development of correct and efficient programs. But the readability of programs is also

More information

Exercise Session 2 Systems Programming and Computer Architecture

Exercise Session 2 Systems Programming and Computer Architecture Systems Group Department of Computer Science ETH Zürich Exercise Session 2 Systems Programming and Computer Architecture Herbstsemester 216 Agenda Linux vs. Windows Working with SVN Exercise 1: bitcount()

More information

Test-Driven Development with Qt and KDE

Test-Driven Development with Qt and KDE Test-Driven Development with Qt and KDE Kevin Ottens Kevin Ottens Test-Driven Development with Qt and KDE 1/45 Introduction Goals Discover the possibilities of the Qt and KDE frameworks Practice Test-Driven

More information

CSE 303, Autumn 2006, Final Examination 12 December 2006

CSE 303, Autumn 2006, Final Examination 12 December 2006 CSE 303, Autumn 2006, Final Examination 12 December 2006 Solutions Please do not turn the page until everyone is ready. Rules: The exam is closed-book, closed-note, except for one two-sided 8.5"x11" piece

More information

Altia API Reference Manual

Altia API Reference Manual Altia API Reference Manual August 1999 Altia, Inc. 1992-1999 5030 Corporate Plaza Drive #200 Colorado Springs, CO 80919 This document contains information which is protected by copyright. All rights are

More information