Programming with Qt for Python
Location: Sunnyvale, CA
Early Bird Pricing: $2,495
Regular Price: $2,995
Course Description
This class is a 5-day hands-on introduction to developing desktop applications using the official set of Python bindings: Qt for Python (also known as PySide 2). Through a series of examples and labs, we will cover GUI programming, GraphicsView, Model/View and the challenges inherent to mixing the Qt API with Python. Although we will mostly use Qt for Python, the material presented also applies to those wishing to use PyQt.
Course Availability: On-site, Open Enrollment
Subject: Qt
Duration: 5 days
Course Prerequisites
- Working knowledge of Python
- Basic knowledge of GUI programming
- No previous Qt experience necessary
Course Outline
Short Overview of Qt
- What is Qt for Python?
- The Story of Qt for Python
- Qt Licensing and Modules
- Hello World in Qt for Python
- Object-oriented Programming in Python
Object Communication and the Event System
- About QObject
- Signal and Slots
- Event System
- The Qt Property System
- Core Classes
Widgets and Dialogs
- Designer Introduction
- Common Widgets
- Dialogs
- Layout Management
Application Creation
- Designer: Main Windows, Menus, and Actions
- Main Windows
- Settings
- Resources
Model/View
- Model/View Concept
- Showing Simple Data
- Custom Models
- Proxy Models
- Delegates
Model/View II
- Editing Item Data
- Data Widget Mapper
- Custom Tree Models
Painting and Styling
- Painting on Widgets
- Color Handling
- Painting Operations
- Styling
GraphicsView
- Using GraphicsView Classes
- Coordinate Systems and Transformations
- Creating Custom Items
Additional Topics
- Drag and Drop
- Intro to QML
- Qt Threads
- Networking
Programming with Qt for Python
Location: Waltham, MA
Early Bird Pricing: $2,495
Regular Price: $2,995
Course Description
This class is a 5-day hands-on introduction to developing desktop applications using the official set of Python bindings: Qt for Python (also known as PySide 2). Through a series of examples and labs, we will cover GUI programming, GraphicsView, Model/View and the challenges inherent to mixing the Qt API with Python. Although we will mostly use Qt for Python, the material presented also applies to those wishing to use PyQt.
Course Availability: On-site, Open Enrollment
Subject: Qt
Duration: 5 days
Course Prerequisites
- Working knowledge of Python
- Basic knowledge of GUI programming
- No previous Qt experience necessary
Course Outline
Short Overview of Qt
- What is Qt for Python?
- The Story of Qt for Python
- Qt Licensing and Modules
- Hello World in Qt for Python
- Object-oriented Programming in Python
Object Communication and the Event System
- About QObject
- Signal and Slots
- Event System
- The Qt Property System
- Core Classes
Widgets and Dialogs
- Designer Introduction
- Common Widgets
- Dialogs
- Layout Management
Application Creation
- Designer: Main Windows, Menus, and Actions
- Main Windows
- Settings
- Resources
Model/View
- Model/View Concept
- Showing Simple Data
- Custom Models
- Proxy Models
- Delegates
Model/View II
- Editing Item Data
- Data Widget Mapper
- Custom Tree Models
Painting and Styling
- Painting on Widgets
- Color Handling
- Painting Operations
- Styling
GraphicsView
- Using GraphicsView Classes
- Coordinate Systems and Transformations
- Creating Custom Items
Additional Topics
- Drag and Drop
- Intro to QML
- Qt Threads
- Networking
Programming with Qt for Python
Location: Sunnyvale, CA
Early Bird Pricing: $2,495
Regular Price: $2,995
Course Description
This class is a 5-day hands-on introduction to developing desktop applications using the official set of Python bindings: Qt for Python (also known as PySide 2). Through a series of examples and labs, we will cover GUI programming, GraphicsView, Model/View and the challenges inherent to mixing the Qt API with Python. Although we will mostly use Qt for Python, the material presented also applies to those wishing to use PyQt.
Course Availability: On-site, Open Enrollment
Subject: Qt
Duration: 5 days
Course Prerequisites
- Working knowledge of Python
- Basic knowledge of GUI programming
- No previous Qt experience necessary
Course Outline
Short Overview of Qt
- What is Qt for Python?
- The Story of Qt for Python
- Qt Licensing and Modules
- Hello World in Qt for Python
- Object-oriented Programming in Python
Object Communication and the Event System
- About QObject
- Signal and Slots
- Event System
- The Qt Property System
- Core Classes
Widgets and Dialogs
- Designer Introduction
- Common Widgets
- Dialogs
- Layout Management
Application Creation
- Designer: Main Windows, Menus, and Actions
- Main Windows
- Settings
- Resources
Model/View
- Model/View Concept
- Showing Simple Data
- Custom Models
- Proxy Models
- Delegates
Model/View II
- Editing Item Data
- Data Widget Mapper
- Custom Tree Models
Painting and Styling
- Painting on Widgets
- Color Handling
- Painting Operations
- Styling
GraphicsView
- Using GraphicsView Classes
- Coordinate Systems and Transformations
- Creating Custom Items
Additional Topics
- Drag and Drop
- Intro to QML
- Qt Threads
- Networking
Programming with Qt for Python
Location: Waltham, MA
Early Bird Pricing: $2,495
Regular Price: $2,995
Course Description
This class is a 5-day hands-on introduction to developing desktop applications using the official set of Python bindings: Qt for Python (also known as PySide 2). Through a series of examples and labs, we will cover GUI programming, GraphicsView, Model/View and the challenges inherent to mixing the Qt API with Python. Although we will mostly use Qt for Python, the material presented also applies to those wishing to use PyQt.
Course Availability: On-site, Open Enrollment
Subject: Qt
Duration: 5 days
Course Prerequisites
- Working knowledge of Python
- Basic knowledge of GUI programming
- No previous Qt experience necessary
Course Outline
Short Overview of Qt
- What is Qt for Python?
- The Story of Qt for Python
- Qt Licensing and Modules
- Hello World in Qt for Python
- Object-oriented Programming in Python
Object Communication and the Event System
- About QObject
- Signal and Slots
- Event System
- The Qt Property System
- Core Classes
Widgets and Dialogs
- Designer Introduction
- Common Widgets
- Dialogs
- Layout Management
Application Creation
- Designer: Main Windows, Menus, and Actions
- Main Windows
- Settings
- Resources
Model/View
- Model/View Concept
- Showing Simple Data
- Custom Models
- Proxy Models
- Delegates
Model/View II
- Editing Item Data
- Data Widget Mapper
- Custom Tree Models
Painting and Styling
- Painting on Widgets
- Color Handling
- Painting Operations
- Styling
GraphicsView
- Using GraphicsView Classes
- Coordinate Systems and Transformations
- Creating Custom Items
Additional Topics
- Drag and Drop
- Intro to QML
- Qt Threads
- Networking
Monday, November 26, 2018
Implementing Modern Apps with Qt Quick
Location: Sunnyvale, CA
Early Bird Pricing: $1,695
Regular Price: $1,995
Course Description
This 3-day course focuses on developing modern applications for embedded systems and desktops using Qt Quick. The target audience is accustomed to the widget classes and is looking to implement UI using QML instead. It assumes a working knowledge of the Qt core and widget classes. The course will present the latest Qt Quick techniques for implementation of UI and UI behavior, the interaction between C++ and QML, user interaction, animations and state machines. Additionally you will learn debugging, profiling and unit testing techniques. The course includes hands-on lab assignments.
Course Availability: On-site, Open Enrollment
Subject: Qt
Duration: 3 days
Course Prerequisites
- Basic knowledge of programming with Qt on the desktop using widgets
- Basic knowledge of C++
Introduction to QML and Qt Quick
- Introduction to Qt Quick
- Qt Creator
- Qt Quick Hello World
- QML Concepts
- Composing User Interfaces
- Nested Elements
- Graphical Types
- Text Items
- Anchor Layout
- QML Components
- Dynamic Object Management in QML
Qt Quick Structures and User Interaction
- Qt Quick Structures
- Components
- Signals and Slots in QML
- Qt Quick Controls
- Modules
- User Interaction
- Mouse Input
- Touch Input
- Keyboard Input
Animations, States and Transitions
- Animations
- Easing Curves
- Animation Groups
- States and Transitions
- States
- State Conditions
- Transitions
Under the Hood - the Qt C++ Layer
- Integrating QML with C++
- Declarative Environment
- Exporting C++ Objects to QML
- Exporting Classes to QML
- Using Custom Types
- Plug-ins
Debugging and Unit Testing
- Notes on Debugging
- QML profiler
- Unit Testing
- Mocking QML UI
You will need a laptop with the following with Qt version 5.x https://www.qt.io/download/
Implementing Modern Apps with Qt Quick
Location: Waltham, MA
Early Bird Pricing: $1,695
Regular Price: $1,995
Course Description
This 3-day course focuses on developing modern applications for embedded systems and desktops using Qt Quick. The target audience is accustomed to the widget classes and is looking to implement UI using QML instead. It assumes a working knowledge of the Qt core and widget classes. The course will present the latest Qt Quick techniques for implementation of UI and UI behavior, the interaction between C++ and QML, user interaction, animations and state machines. Additionally you will learn debugging, profiling and unit testing techniques. The course includes hands-on lab assignments.
Course Availability: On-site, Open Enrollment
Subject: Qt
Duration: 3 days
Course Prerequisites
- Basic knowledge of programming with Qt on the desktop using widgets
- Basic knowledge of C++
Introduction to QML and Qt Quick
- Introduction to Qt Quick
- Qt Creator
- Qt Quick Hello World
- QML Concepts
- Composing User Interfaces
- Nested Elements
- Graphical Types
- Text Items
- Anchor Layout
- QML Components
- Dynamic Object Management in QML
Qt Quick Structures and User Interaction
- Qt Quick Structures
- Components
- Signals and Slots in QML
- Qt Quick Controls
- Modules
- User Interaction
- Mouse Input
- Touch Input
- Keyboard Input
Animations, States and Transitions
- Animations
- Easing Curves
- Animation Groups
- States and Transitions
- States
- State Conditions
- Transitions
Under the Hood - the Qt C++ Layer
- Integrating QML with C++
- Declarative Environment
- Exporting C++ Objects to QML
- Exporting Classes to QML
- Using Custom Types
- Plug-ins
Debugging and Unit Testing
- Notes on Debugging
- QML profiler
- Unit Testing
- Mocking QML UI
You will need a laptop with the following with Qt version 5.x https://www.qt.io/download/
Programming with Qt for Embedded Devices
Location: Waltham, MA
Early Bird Pricing: $2,495
Regular Price: $2,995
Register
Course Description
This 5-day course focuses on developing modern applications for embedded systems and touchscreens using Qt and QtQuick. The class utilizes real development boards with touchscreens for each participant and introduces students to working with embedded touchscreen systems. Further, fundamentals of programming with Qt will be covered to give participants a thorough understanding of the underlying ideas of QML and QtQuick. Efficient and robust design of applications for touchscreen enabled devices utilizing the latest QtQuick techniques is the central focus of this class. As such, architectural considerations for creating applications consisting of beautiful and highly responsive presentation layers, backed by solid back-end implementations are important learning goals for participants.
In the course, we will use the Raspberry Pi embedded system and a multi-point touchscreen. After the class, you may keep the board and touchscreen for a discounted fee of $172.50 plus tax. This is optional and we will loan you a touchscreen and board at no extra charge if you prefer.
Course Availability: On-site, Open Enrollment
Subject: Qt
Duration: 5 days
Course Prerequisites
- Working knowledge of C++ programming
- Basic knowledge of GUI programming
- Previous Qt experience is not required
Course Outline
Qt Fundamentals
- Core Classes
- String Handling
- Container Classes
- File Handling
- Command Line Parsing
- Lab: File I/O, Text Manipulation, and Command Line Parsing
- Objects
- Qt's Object Model
- Variants
- Properties and MetaProperties
- ANSI-Style Typecasts
- Signals & Slots
- QTimers
- Event Handling
- QApplication, Resources, etc..
Introduction to QML and Qt Quick
- Introduction to Qt Quick
- Qt Creator
- Qt Quick Hello World
- QML Concepts
- Composing User Interfaces
- Nested Elements
- Graphical Types
- Text Items
- Anchor Layout
- QML Components
Qt Quick Structures and User Interaction
- Qt Quick Structures
- Components
- Signals and Slots in QML
- QtQuick Controls
- Modules
- User Interaction
- Mouse Input
- Touch Input
- Keyboard Input
Animations, States and Transitions
- Animations
- Easing Curves
- Animation Groups
- States and Transitions
- States
- State Conditions
- Transitions
Under the Hood - the Qt C++ Layer
- Integrating QML with C++
- Declarative Environment
- Exporting C++ Objects to QML
- Exporting Classes to QML
- Using Custom Types
- Plug-ins
Miscellaneous Topics
- Presenting Data (QML)
- Arranging Items
- Data Models
- Using Views
- XML Models
- Views Revisited
- Graphics Effects
- Canvas
- Particles
- Shaders
- MultiThreaded Programming
- Qt Multithreading
- Thread Synchronization and Primitives
Mandatory computer requirements
RegisterProgramming with Qt for Desktops
Location: Sunnyvale, CA
Early Bird Pricing: $2,495
Regular Price: $2,995
Course Description
This is a 5-day, in-depth introduction to Qt programming, primarily focusing on using Qt Widgets and the associated development tools (Qt Designer, Qt Creator and friends). Students will experience the challenges of cross-platform development with exercises that involve porting applications from Windows to MacOS (or vice versa).
Course Availability: On-site, Open Enrollment
Subject: Qt
Duration: 5 days
Course Prerequisites
- Working knowledge of C++ programming
- Basic knowledge of GUI programming
- Previous Qt experience is not required
Course Learning Objectives
- A working knowledge of the capabilities and limitations of Qt
- Experience in programming with Qt
- Course slides and sample programs
Course Outline
Qt Core and Widgets
Qt Fundamentals
Fundamentals of Qt
- The Story of Qt
- Developing a Hello World Application
- Hello World Using Qt Creator
- Practical Tips for Developers
Objects and Core Types
Core Classes
- String Handling
- Container Classes
- File Handling
Objects
- Qt's Object Model
- Variants
- Properties
Object Communication
- Signals & Slots
- Event Handling
Widgets and Designer
Widgets
- Designer Introduction
- Common Widgets
- Layout Management
- Guidelines for Custom Widgets
Dialogs
- Dialogs
- Common Dialogs
- Designer Forms and Code Integration
Applications and Painting
Application Creation
- Main Windows
- Designer: Main Windows, Menus, and Actions
- Settings
- The System Clipboard
- Drag and Drop
- Resources
- Translation for Developers
- Deploying Qt Applications
Painting and Styling
- Painting on Widgets
- Color Handling
- Painting Operations
- Style Sheets
Models and Views
Model/View
- Model/View Concept
- Showing Simple Data
- Proxy Models
- Custom Models
Model/View II
- Delegates
- Editing Item Data
- Data Widget Mapper
- Drag and Drop
- Custom Tree Models
Graphics View
Graphics View
- Using GraphicsView Classes
- Coordinate Systems and Transformations
- Creating Custom Items
Graphics View 2
- Widgets in a Scene
- Drag and Drop
- Effects
- Performance Tuning
Other Topics
Animation
- Starting Animation
- Animation Groups
- States and Animations
- Events and Transitions
Qt Additional Models
MultiThreaded Programming and Multimedia in Qt
Multithreaded Programming
- Qt Multithreading
- Threading Primitives
- QtConcurrent
Multimedia Programming
- Qt Multimedia
Inter-Process Communication
- QProcess
- Shared Memory with Qt
- Network Programming
- QNetworkAccessManager Request/Reply
- Bearer Management API
- TCP/UDP Sockets
- SSL Sockets
- DNS and Proxies
- QtDBus - Qt Bindings to D-Bus
- QtDBus - Advanced Topics
Other Topics
Extending Qt with Plugins
- Qt Plugins
- Plugin Example: Custom Image Formats
Data Processing
- Basic XML APIs
- SQL Database API
- SQL Models
XML Patterns
- XPath, XQuery, and XSLT
- QtXmlPatterns
- XML Schema