Hands-On Mobile and Embedded Development with Qt 5
图书信息
| 作者 | Lorn Potter |
| 出版社 | Packt Publishing |
| ISBN | 9781789618488 |
| 出版时间 | 2019-04-30 |
| 字数 | 32.2万 |
| 分类 | 进口书,外文原版书,电脑,网络 |
读书简介
Explore Qt framework and APIs for building cross-platform applications for mobile devices, embedded systems, and IoT Key Features * Build cross-platform applications and deploy them across mobile and connected devices * Design 2D and 3D UIs for embedded systems using Yocto and Qt Creator * Build machine to machine automation solution using QtSensors, QtMQTT, and QtWebSockets Book Description Qt is a world-class framework, helping you to develop rich graphical user interfaces (GUIs) and multi-platform applications that run on all major desktop platforms and most mobile or embedded platforms. The framework helps you connect the dots across platforms and between online and physical experience. This book will help you leverage the fully-featured Qt framework and its modular cross-platform library classes and intuitive APIs to develop applications for mobile, IoT, and industrial embedded systems. Considerations such as screen size, device orientation changes, and small memory will be discussed. We will focus on various core aspects of embedded and mobile systems, such as connectivity, networking, and sensors; there is no IoT without sensors. You will learn how to quickly design a flexible, fast, and responsive UI that looks great. Going further, you will implement different elements in a matter of minutes and synchronize the UI elements with the 3D assets with high precision. You will learn how to create high-performance embedded systems with 3D/2D user interfaces, and deploy and test on your target hardware. The book will explore several new features, including Qt for WebAssembly. At the end of this book, you will learn about creating a full software stack for embedded Linux systems using Yocto and Boot to Qt for Device Creation. What you will learn * Explore the latest features of Qt, such as preview for Qt for Python and Qt for WebAssembly * Create fluid UIs with a dynamic layout for different sized screens * Deploy embedded applications on Linux systems using Yocto * Design Qt APIs for building applications for embedded and mobile devices * Utilize connectivity for networked and machine automated applications * Discover effective techniques to apply graphical effects using Qt Quick apps Who this book is for The book is ideal for mobile developers, embedded systems engineers and enthusiasts who are interested in building cross-platform applications with Qt. Prior knowledge of C++ is required.
目录
Dedication
About Packt
Why subscribe?
Packt.com
Foreword
Contributors
About the author
About the reviewer
Packt is searching for authors like you
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Download the color images
Conventions used
Get in touch
Reviews
Section 1: Making Great UIs
Standard Qt Widgets
Hello mobile!
Qt Creator
Basic Qt Creator procedure
Qt Designer
Add a QMenu
Add QListView
Going smaller, handling screen sizes
Screen resolution
Memory and storage
Orientation
Gestures
Dynamic layouts
Graphics view
Summary
Fluid UI with Qt Quick
Qt Quick basics – anything goes
QML
Components
Dynamic binding
Signal connections
Model-view programming
GridView
ListView
PathView
TreeView
Gestures and touch
PinchArea
MultiPointTouchArea
Positioning
Layouts
Rigid layouts
Dynamic layout
Anchors
Qt Quick Controls 2 button, button, who's got the button?
Customizing
Show your data – Qt Data Visualization and Qt Charts
Qt Charts
Qt Data Visualization
Animate it!
Transitions
Animation
PropertyAnimation
NumberAnimation
SequentialAnimation
ParallelAnimation
SpringAnimation
Easing
SceneGraph
Summary
Graphical and Special Effects
The universe of particles
ParticleSystem
Particle painters, emitters, and affectors
Affectors
Shapes and directions
Graphical effects for Qt Quick
DropShadow
Glow
Gradient
Blur
Summary
Input and Touch
What to do when there's no keyboard
Using touch input
QEvent
Event filter
Event loop
Touchscreen support
Windows, iOS and Android
Linux
evdev
libevdev
libinput
Tslib
Using the touchscreen
MultiPointTouchArea
Qt Gestures
Voice as input
QtAlexaAuto
Summary
Section 2: Networking, Connectivity, Sensors, and Automation
Qt Network for Communication
High level – request, reply, and access
QNetworkRequest
QNetworkAccessManager
QNetworkReply
QFtp
Bearer Management of good news
QNetworkConfiguration
QNetworkConfiguration::BearerType
QNetworkConfiguration::StateFlags
QNetworkConfigurationManager
QNetworkSession
Roaming
QBearerEngine
Low level – of sockets and servers
QLocalServer
QLocalSocket
QTcpServer
QTcpSocket
QSctpServer
QSctpSocket
QUdpSocket
QSslSocket
QSslServer
Lookups – look me up
QHostInfo
QDnsLookup
Summary
Connectivity with Qt Bluetooth LE
What is Bluetooth Low Energy?
Implementing a BLE GATT server
QLowEnergyAdvertisingData
QLowEnergyCharacteristicData
QLowEnergyServiceData
Discovery and Pair-ity – search and connect for BLE devices
QBluetoothDeviceDiscoveryAgent
QBluetoothLocalDevice
Specifying and getting client data
QLowEnergyController
QLowEnergyService
QLowEnergyCharacteristic
QLowEnergyDescriptor
Bluetooth QML
BluetoothDiscoveryModel
BluetoothService
BluetoothSocket
Summary
Machines Talking
Sensory control – QtSensor data
QSensor
The QSensor subclass
QSensorFilter
QSensor data
QSensorReading
QML sensors
Custom QSensor and the backend engine
Custom QSensor
Custom QSensorBackend
Sensors.conf
QSensorGesture
QSensorGestureManager
SensorGesture
WebSockets – Bi-directional web communication
QWebSocketServer
QWebSocket
Client
QtQuick
WebSocketServer
WebSocket
QMqtt – Brokers of machine talk
QMqttClient
Putting it all together
Summary
Where Am I? Location and Positioning
Positioning with satellites
QGeoSatelliteInfoSource
QGeoSatelliteInfo
QGeoPositionInfoSource
QGeoPositionInfo
QGeoCoordinate
Qt Quick
Mapping the positions
Map
MapCircle
PluginParameter
RouteModel
Places of interest
Summary
Section 3: Other APIs Qt SQL, Qt Multimedia, and Qt Purchasing
Sounds and Visions - Qt Multimedia
Sonic vibrations – audio
Qt.vector3d
AudioEngine
AudioSample
Sound
AudioListener
SoundInstance
Audio
QAudioRecorder
QMediaPlayer
QAudioOutput
Image sensors – camera
QCameraInfo
Camera
VideoOutput
Visual media – playing video
Tuning it in – FM radio tuner
Summary
Remote Databases with Qt SQL
Technical requirements
Drivers are database backends
Setup
The MySQL server
SQLite
Connecting to a local or remote database
QSqlDatabase
Creating and opening a database
Adding data to the database
Executing queries
QSqlQuery
QSqlQueryModel
Summary
Enabling In-App Purchases with Qt Purchasing
Registering on Android Google Play
Registering on iOS App Store
Creating an in-app product
Store
Product
Transaction
Restoring purchases
Summary
Section 4: Mobile Deployment and Device Creation
Cross Compiling and Remote Debugging
Cross compiling
Traditional cross tools
DIY toolchain
Buildroot
Crosstool-NG
Prebuilt tools
Boot to Qt
Cross toolchains on Windows
Sysprogs
Windows Subsystem for Linux
Mobile platform-specific tools
iOS
Android
QNX
Connecting to a remote device
Qt Creator
Generic Linux
Android
iOS
Bare metal
Debugging remotely
gdbserver
Qt Creator
Summary
Deploying to Mobile and Embedded
Deployment for Android
The package
androiddeployqt
Qt Creator
Test track
Internal tests
Deployment for iOS
The package
Qt Creator
Xcode
Alternative OSes
Sailfish OS
UBports
Clickable
Embedded Linux
OS deployment
App deployment
Summary
Universal Platform for Mobiles and Embedded Devices
What is this WebAssembly thing?
Technical requirements
Getting started
Download Emscripten
Building an Emscripten SDK manually
Technical requirements
Configuring and compiling Qt
Building with the command line
Building with Qt Creator
The Build environment
The Run environment
Deploying for mobile and embedded devices
Tips, tricks, and suggestions
Browsers
Debugging
Networking
Fonts and filesystem access
OpenGL
Supported Qt modules
Other caveats
Summary
Building a Linux System
Bootcamp – Boot to Qt
Rolling your own – custom embedded Linux
System customization
local.conf file
meta-
devtool command
recipetool command
bitbake-layers
yocto-layer
bbappend files
Deploying to an embedded system
OpenEmbedded
Raspberry Pi
Summary
Other Books You May Enjoy
Leave a review - let other readers know what you think
- 高考英语历年真题核心高频688词汇(合肥新东方高考英语教研中心)
- 中国资本市场:重塑生态链(吴晓求 等)
- 一年级爱科学:异想天开的玉米粒(代晓琴)
- 犹忆武林人未远——民国武林忆旧及安慰武学遗录(安慰)
- Once Upon a Christmas (Mills & Boon Love Inspired)(Pamela Tracy)
- 侯大利刑侦笔记8:旧案寻踪(集侦查学、痕迹学、社会学、尸体解剖学、犯罪心理学的教科书式破案小说)(读客知识小说文库)(小桥老树)
- 内部审计工作指南:穿透实务核心(郭长水,纪新伟 主编)
- Gone With the Windsors(Laurie Graham)
