SlideShare a Scribd company logo
1 of 15
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)

More Related Content

What's hot

Qt 6.2 lts vs. qt 5.15 the big feature parity comparison
Qt 6.2 lts vs. qt 5.15 the big feature parity comparisonQt 6.2 lts vs. qt 5.15 the big feature parity comparison
Qt 6.2 lts vs. qt 5.15 the big feature parity comparisonQt
 
Modern microcontroller (mcu) application development with qt
Modern microcontroller (mcu) application development with qtModern microcontroller (mcu) application development with qt
Modern microcontroller (mcu) application development with qtQt
 
Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Software
Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization SoftwareCase Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Software
Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Softwareaccount inactive
 
Creating Advanced GUIs for Low-power MCUs with Qt
Creating Advanced GUIs for Low-power MCUs with QtCreating Advanced GUIs for Low-power MCUs with Qt
Creating Advanced GUIs for Low-power MCUs with QtICS
 
Creating Slick User Interfaces With Qt
Creating Slick User Interfaces With QtCreating Slick User Interfaces With Qt
Creating Slick User Interfaces With QtEspen Riskedal
 
Targeting Android with Qt
Targeting Android with QtTargeting Android with Qt
Targeting Android with QtEspen Riskedal
 
qt-project.org and Qt 5
qt-project.org and Qt 5qt-project.org and Qt 5
qt-project.org and Qt 5thiagomacieira
 
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Andreas Jakl
 
Qt for beginners part 5 ask the experts
Qt for beginners part 5   ask the expertsQt for beginners part 5   ask the experts
Qt for beginners part 5 ask the expertsICS
 
Migrating from Photon to Qt
Migrating from Photon to QtMigrating from Photon to Qt
Migrating from Photon to QtJanel Heilbrunn
 
Qt 6 Chat - Are You Ready?
Qt 6 Chat - Are You Ready?Qt 6 Chat - Are You Ready?
Qt 6 Chat - Are You Ready?ICS
 
How to Make Your Qt App Look Native
How to Make Your Qt App Look NativeHow to Make Your Qt App Look Native
How to Make Your Qt App Look Nativeaccount inactive
 
Convert Your Legacy OpenGL Code to Modern OpenGL with Qt
Convert Your Legacy OpenGL Code to Modern OpenGL with QtConvert Your Legacy OpenGL Code to Modern OpenGL with Qt
Convert Your Legacy OpenGL Code to Modern OpenGL with QtICS
 
Improve Time to Market for Industrial Edge Devices
Improve Time to Market for Industrial Edge DevicesImprove Time to Market for Industrial Edge Devices
Improve Time to Market for Industrial Edge DevicesQt
 
Knowit study group örnsköldsvik - introduction to qt & qt creator
Knowit   study group örnsköldsvik - introduction to qt & qt creatorKnowit   study group örnsköldsvik - introduction to qt & qt creator
Knowit study group örnsköldsvik - introduction to qt & qt creatorMathias Westin
 

What's hot (20)

Qt 6.2 lts vs. qt 5.15 the big feature parity comparison
Qt 6.2 lts vs. qt 5.15 the big feature parity comparisonQt 6.2 lts vs. qt 5.15 the big feature parity comparison
Qt 6.2 lts vs. qt 5.15 the big feature parity comparison
 
Modern microcontroller (mcu) application development with qt
Modern microcontroller (mcu) application development with qtModern microcontroller (mcu) application development with qt
Modern microcontroller (mcu) application development with qt
 
Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Software
Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization SoftwareCase Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Software
Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Software
 
Creating Advanced GUIs for Low-power MCUs with Qt
Creating Advanced GUIs for Low-power MCUs with QtCreating Advanced GUIs for Low-power MCUs with Qt
Creating Advanced GUIs for Low-power MCUs with Qt
 
Creating Slick User Interfaces With Qt
Creating Slick User Interfaces With QtCreating Slick User Interfaces With Qt
Creating Slick User Interfaces With Qt
 
Qt quick (qml)
Qt quick (qml)Qt quick (qml)
Qt quick (qml)
 
Targeting Android with Qt
Targeting Android with QtTargeting Android with Qt
Targeting Android with Qt
 
qt-project.org and Qt 5
qt-project.org and Qt 5qt-project.org and Qt 5
qt-project.org and Qt 5
 
Linux distributions. Ubuntu Server
Linux distributions. Ubuntu ServerLinux distributions. Ubuntu Server
Linux distributions. Ubuntu Server
 
Qt 5 - C++ and Widgets
Qt 5 - C++ and WidgetsQt 5 - C++ and Widgets
Qt 5 - C++ and Widgets
 
了解 Qt
了解 Qt了解 Qt
了解 Qt
 
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
 
Qt for beginners part 5 ask the experts
Qt for beginners part 5   ask the expertsQt for beginners part 5   ask the experts
Qt for beginners part 5 ask the experts
 
Migrating from Photon to Qt
Migrating from Photon to QtMigrating from Photon to Qt
Migrating from Photon to Qt
 
Qt 6 Chat - Are You Ready?
Qt 6 Chat - Are You Ready?Qt 6 Chat - Are You Ready?
Qt 6 Chat - Are You Ready?
 
How to Make Your Qt App Look Native
How to Make Your Qt App Look NativeHow to Make Your Qt App Look Native
How to Make Your Qt App Look Native
 
Qt Programming on TI Processors
Qt Programming on TI ProcessorsQt Programming on TI Processors
Qt Programming on TI Processors
 
Convert Your Legacy OpenGL Code to Modern OpenGL with Qt
Convert Your Legacy OpenGL Code to Modern OpenGL with QtConvert Your Legacy OpenGL Code to Modern OpenGL with Qt
Convert Your Legacy OpenGL Code to Modern OpenGL with Qt
 
Improve Time to Market for Industrial Edge Devices
Improve Time to Market for Industrial Edge DevicesImprove Time to Market for Industrial Edge Devices
Improve Time to Market for Industrial Edge Devices
 
Knowit study group örnsköldsvik - introduction to qt & qt creator
Knowit   study group örnsköldsvik - introduction to qt & qt creatorKnowit   study group örnsköldsvik - introduction to qt & qt creator
Knowit study group örnsköldsvik - introduction to qt & qt creator
 

Viewers also liked

GUI_using_QT_Designer_PyQT4
GUI_using_QT_Designer_PyQT4GUI_using_QT_Designer_PyQT4
GUI_using_QT_Designer_PyQT4zenonas
 
Qt Development Tools
Qt Development ToolsQt Development Tools
Qt Development ToolsWilliam Lee
 
Go & multi platform GUI Trials and Errors
Go & multi platform GUI Trials and ErrorsGo & multi platform GUI Trials and Errors
Go & multi platform GUI Trials and ErrorsYoshiki Shibukawa
 
Ppt of mini project.
Ppt of mini project.Ppt of mini project.
Ppt of mini project.saikiran_gone
 
Linux.ppt
Linux.ppt Linux.ppt
Linux.ppt onu9
 

Viewers also liked (9)

GUI_using_QT_Designer_PyQT4
GUI_using_QT_Designer_PyQT4GUI_using_QT_Designer_PyQT4
GUI_using_QT_Designer_PyQT4
 
Test Result 92405923
Test Result 92405923Test Result 92405923
Test Result 92405923
 
Qt Development Tools
Qt Development ToolsQt Development Tools
Qt Development Tools
 
Qt Application Development
Qt Application DevelopmentQt Application Development
Qt Application Development
 
Go & multi platform GUI Trials and Errors
Go & multi platform GUI Trials and ErrorsGo & multi platform GUI Trials and Errors
Go & multi platform GUI Trials and Errors
 
Ubuntu-Overview
Ubuntu-OverviewUbuntu-Overview
Ubuntu-Overview
 
Mini project ppt
Mini project pptMini project ppt
Mini project ppt
 
Ppt of mini project.
Ppt of mini project.Ppt of mini project.
Ppt of mini project.
 
Linux.ppt
Linux.ppt Linux.ppt
Linux.ppt
 

Similar to Intro to gui, cross platform and qt

.Net introduction by Quontra Solutions
.Net introduction by Quontra Solutions.Net introduction by Quontra Solutions
.Net introduction by Quontra SolutionsQUONTRASOLUTIONS
 
Some wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily useSome wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily usearun.arwachin
 
An Introduction To Linux Development Environment
An Introduction To Linux Development EnvironmentAn Introduction To Linux Development Environment
An Introduction To Linux Development EnvironmentS. M. Hossein Hamidi
 
Add the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKitAdd the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKitIgalia
 
Graphical libraries
Graphical librariesGraphical libraries
Graphical librariesguestbd40369
 
Architecture of .net framework
Architecture of .net frameworkArchitecture of .net framework
Architecture of .net frameworkThen Murugeshwari
 
Qt user interface
Qt user interfaceQt user interface
Qt user interfacemeriem sari
 
Dot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part iDot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part iRakesh Joshi
 
Dot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part iDot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part iRakesh Joshi
 
Qt S60 Technical Presentation Fn Stripped
Qt S60 Technical Presentation Fn StrippedQt S60 Technical Presentation Fn Stripped
Qt S60 Technical Presentation Fn StrippedNokia
 

Similar to Intro to gui, cross platform and qt (20)

Qtframework
QtframeworkQtframework
Qtframework
 
Niteesh
NiteeshNiteesh
Niteesh
 
Mca 504 dotnet_unit1
Mca 504 dotnet_unit1Mca 504 dotnet_unit1
Mca 504 dotnet_unit1
 
.Net introduction by Quontra Solutions
.Net introduction by Quontra Solutions.Net introduction by Quontra Solutions
.Net introduction by Quontra Solutions
 
Some wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily useSome wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily use
 
An Introduction To Linux Development Environment
An Introduction To Linux Development EnvironmentAn Introduction To Linux Development Environment
An Introduction To Linux Development Environment
 
Chapter1
Chapter1Chapter1
Chapter1
 
Introduction to .net
Introduction to .netIntroduction to .net
Introduction to .net
 
Add the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKitAdd the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKit
 
Graphical libraries
Graphical librariesGraphical libraries
Graphical libraries
 
Synapse india reviews sharing asp.net
Synapse india reviews sharing  asp.netSynapse india reviews sharing  asp.net
Synapse india reviews sharing asp.net
 
Architecture of .net framework
Architecture of .net frameworkArchitecture of .net framework
Architecture of .net framework
 
Qt user interface
Qt user interfaceQt user interface
Qt user interface
 
Dot Net PPt.pptx
Dot Net PPt.pptxDot Net PPt.pptx
Dot Net PPt.pptx
 
Dot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part iDot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part i
 
Dot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part iDot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part i
 
Qt S60 Technical Presentation Fn Stripped
Qt S60 Technical Presentation Fn StrippedQt S60 Technical Presentation Fn Stripped
Qt S60 Technical Presentation Fn Stripped
 
Android development tutorial
Android development tutorialAndroid development tutorial
Android development tutorial
 
.Net
.Net.Net
.Net
 
.Net overview
.Net overview.Net overview
.Net overview
 

Recently uploaded

Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxKartikeyaDwivedi3
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learningmisbanausheenparvam
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLDeelipZope
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and usesDevarapalliHaritha
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEroselinkalist12
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 

Recently uploaded (20)

POWER SYSTEMS-1 Complete notes examples
POWER SYSTEMS-1 Complete notes  examplesPOWER SYSTEMS-1 Complete notes  examples
POWER SYSTEMS-1 Complete notes examples
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptx
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learning
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCL
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and uses
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 

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-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.
  • 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 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.
  • 6. Three main part of 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 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]
  • 12. Introduction to Qt Continues: (License)  Qt Commercial License[4]  GPL-3.0[5]  LGPL-3.0[6][7]  LGPL-2.1[8]
  • 13. 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
  • 14. Introduction to Qt Continues: (Editions)  Community.  Indie Mobile.  Professional and Enterprise.
  • 15. Introduction to Qt Continues: (History)  Trolltech (1991–2008)  Nokia (2008–2011)  Digia (2012–2014)  Qt Company (2014-present)  Qt Project (2011–present)