KEMBAR78
Intro to gui, cross platform and qt | PPTX
Introduction to GUI, Cross-
platform and Qt
By: Muhammad Sabry
Contacts: muhammadsabry1st@gmail.com
What does Cross-platform mean?
 From software perspective, it is the development of
software that is said to be platform-independent. For a
piece of software to be considered cross-platform, it
must be able to function on more than one computer
architecture or operating system
 Platform: refers to the hardware or the operating system
or a combination of both.
Cross-Platform Software Types:
 Cross-platform software may be divided into two types: -
- one requires individual building or compilation for each
platform that it supports.
- The other one can be directly run on any platform
without special preparation, e.g., software written in
an interpreted language.
Challenges to cross-platform:
 Testing cross-platform applications may be considerably
more complicated.
 Different platforms often have different user interface
conventions
 Scripting languages and virtual machines must be
translated into native executable code each time the
application is executed, imposing a performance
penalty
Introduction to GUI programming:
 GUI (gooey) : allow the users to interact with devices through Graphics
opposed to the old text-based interface or CLI.
 GUI Elements : Windows, Buttons, Menus, Text fields, scroll bars, etc… which
is so called widgets. Widgets can contain other widgets.
 What is a widget? A widget is a visual element in a user interface.
 GUI Library consist of: Most GUI library is a set of Classes to the different
element we interact with, data structure, database, networking, etc…
 C++ GUI Libraries: wxWidget, GTK+, Qt, MFC.
Three main part of any GUI program:
 Graphical component.
 Event handlers (e.g., in Qt they called slots).
 Application methods or functions.
Event driven programming:
 When you perform an action on a graphical component
you generate an event. In event-driven
programming the program responds to these events.
The order of the events is determined by the user, not
the program.
Some Development Terminologies
 IDE: (integrated development environment) a text editor with additional
support (e.g., Designer, Resource editor) compiling and debugging
applications. e.g., Visual Studio.
 Library: is a chunk of code (Classes and functions) that you can call from
your own code, to help you do things more quickly/easily. e.g., Boost
Library.
 API (application programming interface) is a term means the functions in a
library that you can call to ask it to do things for you - the interface to the
library.
 SDK (software development kit) is a library (often with extra tool Debugger,
emulator, documentation, sample code, and tutorials.) that aid you in
developing code that uses a particular system (e.g. extension code for
using features of an operating system (Windows SDK), drawing 3D graphics
via a particular system (DirectX SDK)
Terminologies continues..
 Toolkit: is like an SDK - it's a group of tools (and often code libraries)
that you can use to make it easier to access a device or system.
 A framework is a big library that provides most (if not all) of the
services you need to write a vast range of applications.
 Basically, all the control flow is already in the framework, and there's just
a bunch of predefined white spots that you can fill out with your code.
A library on the other hand is a collection of functionality that you can
call.
Introduction to Qt:
 Qt is a cross-platform application and UI framework for developers
using C++ or QML.
 Qt Creator is the supporting Qt IDE.
 Qt is used mainly for developing application software with graphical
user interfaces (GUIs); however, programs without a GUI can be
developed.
 Qt uses standard C++ with extensions
 Qt supports many compilers, including the GCC C++ compiler and
the Visual Studio suite.
Introduction to Qt Continues: (Platforms)
Platform New features
Android Qt for Android,[19] formerly known as Necessitas.[20]
Embedded Linux
Qt for embedded platforms: personal digital
assistant, smartphone, etc.[21]
Integrity Qt for Integrity[22]
iOS Qt for iOS platforms (iPhone, iPad)[23]
OS X Qt for Apple OS X; supports applications on Cocoa[24]
QNX / BlackBerry 10
Qt for QNX[25] and the QNX-based BlackBerry
10 platform.[26][27]
VxWorks Qt for VxWorks.[28]
Wayland
Qt for Wayland.[29] Qt applications can switch between
graphical backends like X and Wayland at load time with
the -platform command line option.[30][31] This allows a
seamless transition of Qt applications from X11 to
Wayland.
Windows Qt for Microsoft Windows XP, Vista, 7,[32] 8
Windows CE
Qt for Windows CE 6 and Windows Embedded Compact
7.[33]
Windows RT
Support for WinRT-based Windows 8 apps and Windows
Phone 8[34] With 5.4 minimum supported version: Windows
Phone 8.1[35]
X11
Qt for X Window System (GNU/Linux, FreeBSD, HP-UX,
Solaris, AIX, etc.)[36]
Introduction to Qt Continues: (License)
 Qt Commercial License[4]
 GPL-3.0[5]
 LGPL-3.0[6][7]
 LGPL-2.1[8]
Introduction to Qt Continues: (Languages)
Language
Name: description of
binding
License for open
source applications
License
for proprietary applications
Ada Qt5Ada LGPL
LGPL or Commercial proprie
tary[1]
C++ Qt – built-in[2] GPL or LGPL
LGPL or Commercial proprie
tary[1]
Go Go QML – (blog) LGPL LGPL
Haskell HsQML BSD BSD
JavaScript QtQuick – built into Qt[3] LGPL
LGPL or Commercial proprie
tary[1]
Python PyQt[4] GPL Commercial proprietary
Python PyOtherSide – only for QML Free Free
QML QtQuick – built into Qt[5] LGPL
LGPL or Commercial proprie
tary[1]
Ruby ruby-qml – only for QML MIT MIT
Language
Name: description of
binding
License for open source
applications
License for proprietary
applications
Qt 5 language bindings
Introduction to Qt Continues: (Editions)
 Community.
 Indie Mobile.
 Professional and Enterprise.
Introduction to Qt Continues: (History)
 Trolltech (1991–2008)
 Nokia (2008–2011)
 Digia (2012–2014)
 Qt Company (2014-present)
 Qt Project (2011–present)

Intro to gui, cross platform and qt

  • 1.
    Introduction to GUI,Cross- platform and Qt By: Muhammad Sabry Contacts: muhammadsabry1st@gmail.com
  • 2.
    What does Cross-platformmean?  From software perspective, it is the development of software that is said to be platform-independent. For a piece of software to be considered cross-platform, it must be able to function on more than one computer architecture or operating system  Platform: refers to the hardware or the operating system or a combination of both.
  • 3.
    Cross-Platform Software Types: Cross-platform software may be divided into two types: - - one requires individual building or compilation for each platform that it supports. - The other one can be directly run on any platform without special preparation, e.g., software written in an interpreted language.
  • 4.
    Challenges to cross-platform: Testing cross-platform applications may be considerably more complicated.  Different platforms often have different user interface conventions  Scripting languages and virtual machines must be translated into native executable code each time the application is executed, imposing a performance penalty
  • 5.
    Introduction to GUIprogramming:  GUI (gooey) : allow the users to interact with devices through Graphics opposed to the old text-based interface or CLI.  GUI Elements : Windows, Buttons, Menus, Text fields, scroll bars, etc… which is so called widgets. Widgets can contain other widgets.  What is a widget? A widget is a visual element in a user interface.  GUI Library consist of: Most GUI library is a set of Classes to the different element we interact with, data structure, database, networking, etc…  C++ GUI Libraries: wxWidget, GTK+, Qt, MFC.
  • 6.
    Three main partof any GUI program:  Graphical component.  Event handlers (e.g., in Qt they called slots).  Application methods or functions.
  • 7.
    Event driven programming: When you perform an action on a graphical component you generate an event. In event-driven programming the program responds to these events. The order of the events is determined by the user, not the program.
  • 8.
    Some Development Terminologies IDE: (integrated development environment) a text editor with additional support (e.g., Designer, Resource editor) compiling and debugging applications. e.g., Visual Studio.  Library: is a chunk of code (Classes and functions) that you can call from your own code, to help you do things more quickly/easily. e.g., Boost Library.  API (application programming interface) is a term means the functions in a library that you can call to ask it to do things for you - the interface to the library.  SDK (software development kit) is a library (often with extra tool Debugger, emulator, documentation, sample code, and tutorials.) that aid you in developing code that uses a particular system (e.g. extension code for using features of an operating system (Windows SDK), drawing 3D graphics via a particular system (DirectX SDK)
  • 9.
    Terminologies continues..  Toolkit:is like an SDK - it's a group of tools (and often code libraries) that you can use to make it easier to access a device or system.  A framework is a big library that provides most (if not all) of the services you need to write a vast range of applications.  Basically, all the control flow is already in the framework, and there's just a bunch of predefined white spots that you can fill out with your code. A library on the other hand is a collection of functionality that you can call.
  • 10.
    Introduction to Qt: Qt is a cross-platform application and UI framework for developers using C++ or QML.  Qt Creator is the supporting Qt IDE.  Qt is used mainly for developing application software with graphical user interfaces (GUIs); however, programs without a GUI can be developed.  Qt uses standard C++ with extensions  Qt supports many compilers, including the GCC C++ compiler and the Visual Studio suite.
  • 11.
    Introduction to QtContinues: (Platforms) Platform New features Android Qt for Android,[19] formerly known as Necessitas.[20] Embedded Linux Qt for embedded platforms: personal digital assistant, smartphone, etc.[21] Integrity Qt for Integrity[22] iOS Qt for iOS platforms (iPhone, iPad)[23] OS X Qt for Apple OS X; supports applications on Cocoa[24] QNX / BlackBerry 10 Qt for QNX[25] and the QNX-based BlackBerry 10 platform.[26][27] VxWorks Qt for VxWorks.[28] Wayland Qt for Wayland.[29] Qt applications can switch between graphical backends like X and Wayland at load time with the -platform command line option.[30][31] This allows a seamless transition of Qt applications from X11 to Wayland. Windows Qt for Microsoft Windows XP, Vista, 7,[32] 8 Windows CE Qt for Windows CE 6 and Windows Embedded Compact 7.[33] Windows RT Support for WinRT-based Windows 8 apps and Windows Phone 8[34] With 5.4 minimum supported version: Windows Phone 8.1[35] X11 Qt for X Window System (GNU/Linux, FreeBSD, HP-UX, Solaris, AIX, etc.)[36]
  • 12.
    Introduction to QtContinues: (License)  Qt Commercial License[4]  GPL-3.0[5]  LGPL-3.0[6][7]  LGPL-2.1[8]
  • 13.
    Introduction to QtContinues: (Languages) Language Name: description of binding License for open source applications License for proprietary applications Ada Qt5Ada LGPL LGPL or Commercial proprie tary[1] C++ Qt – built-in[2] GPL or LGPL LGPL or Commercial proprie tary[1] Go Go QML – (blog) LGPL LGPL Haskell HsQML BSD BSD JavaScript QtQuick – built into Qt[3] LGPL LGPL or Commercial proprie tary[1] Python PyQt[4] GPL Commercial proprietary Python PyOtherSide – only for QML Free Free QML QtQuick – built into Qt[5] LGPL LGPL or Commercial proprie tary[1] Ruby ruby-qml – only for QML MIT MIT Language Name: description of binding License for open source applications License for proprietary applications Qt 5 language bindings
  • 14.
    Introduction to QtContinues: (Editions)  Community.  Indie Mobile.  Professional and Enterprise.
  • 15.
    Introduction to QtContinues: (History)  Trolltech (1991–2008)  Nokia (2008–2011)  Digia (2012–2014)  Qt Company (2014-present)  Qt Project (2011–present)