0
# Qt Module Wrappers
1
2
Unified access to all major Qt modules that automatically import from the appropriate underlying binding. These modules provide the complete Qt API through a consistent interface regardless of which Qt binding (PyQt5/6, PySide2/6) is installed.
3
4
## Capabilities
5
6
### Core Qt Modules
7
8
Essential Qt modules for application development, GUI, and system functionality.
9
10
```python { .api }
11
import qtpy.QtCore
12
"""Core Qt functionality - signals, slots, events, threading, timers, etc."""
13
14
import qtpy.QtGui
15
"""GUI-related classes - painting, events, images, fonts, etc."""
16
17
import qtpy.QtWidgets
18
"""Widget classes for desktop applications"""
19
20
import qtpy.QtNetwork
21
"""Network programming classes"""
22
23
import qtpy.QtSql
24
"""Database integration classes"""
25
26
import qtpy.QtTest
27
"""Unit testing framework for Qt applications"""
28
29
import qtpy.QtConcurrent
30
"""High-level multithreading APIs"""
31
32
import qtpy.QtDBus
33
"""D-Bus IPC support (Unix/Linux systems)"""
34
35
import qtpy.QtHelp
36
"""Help system integration"""
37
38
import qtpy.QtXml
39
"""XML processing classes"""
40
41
import qtpy.QtXmlPatterns
42
"""XPath and XQuery support"""
43
```
44
45
Usage example:
46
47
```python
48
from qtpy.QtCore import QTimer, Signal, Slot
49
from qtpy.QtWidgets import QApplication, QWidget, QPushButton
50
from qtpy.QtGui import QPainter, QFont
51
from qtpy.QtNetwork import QNetworkAccessManager, QNetworkRequest
52
53
# All modules work consistently regardless of underlying binding
54
timer = QTimer()
55
app = QApplication([])
56
widget = QWidget()
57
```
58
59
### Graphics and Multimedia Modules
60
61
Modules for graphics rendering, multimedia, printing, and visualization.
62
63
```python { .api }
64
import qtpy.QtOpenGL
65
"""OpenGL integration classes"""
66
67
import qtpy.QtOpenGLWidgets
68
"""OpenGL widget classes (Qt6)"""
69
70
import qtpy.QtSvg
71
"""SVG rendering support"""
72
73
import qtpy.QtSvgWidgets
74
"""SVG widget classes"""
75
76
import qtpy.QtPrintSupport
77
"""Printing support classes"""
78
79
import qtpy.QtMultimedia
80
"""Multimedia classes - audio, video, camera"""
81
82
import qtpy.QtMultimediaWidgets
83
"""Multimedia widget classes"""
84
85
import qtpy.Qt3DCore
86
"""3D graphics core functionality"""
87
88
import qtpy.Qt3DRender
89
"""3D rendering pipeline"""
90
91
import qtpy.Qt3DInput
92
"""3D input handling"""
93
94
import qtpy.Qt3DLogic
95
"""3D logic components"""
96
97
import qtpy.Qt3DExtras
98
"""3D convenience classes"""
99
100
import qtpy.Qt3DAnimation
101
"""3D animation framework"""
102
103
import qtpy.QtCharts
104
"""Chart and graph widgets"""
105
106
import qtpy.QtDataVisualization
107
"""3D data visualization"""
108
```
109
110
Usage example:
111
112
```python
113
from qtpy.QtOpenGL import QOpenGLWidget
114
from qtpy.QtMultimedia import QMediaPlayer
115
from qtpy.QtCharts import QChart, QChartView
116
117
# Graphics and multimedia functionality
118
opengl_widget = QOpenGLWidget()
119
media_player = QMediaPlayer()
120
chart = QChart()
121
```
122
123
### Web and Quick Modules
124
125
Web browser integration and QML/Quick UI framework modules.
126
127
```python { .api }
128
import qtpy.QtWebEngine
129
"""Web browser engine integration"""
130
131
import qtpy.QtWebEngineCore
132
"""Web engine core functionality"""
133
134
import qtpy.QtWebEngineWidgets
135
"""Web engine widget classes"""
136
137
import qtpy.QtWebEngineQuick
138
"""Web engine QML integration"""
139
140
import qtpy.QtWebChannel
141
"""Web channel communication"""
142
143
import qtpy.QtWebSockets
144
"""WebSocket protocol support"""
145
146
import qtpy.QtQml
147
"""QML engine and runtime"""
148
149
import qtpy.QtQuick
150
"""Quick/QML UI framework"""
151
152
import qtpy.QtQuick3D
153
"""3D content for Qt Quick"""
154
155
import qtpy.QtQuickControls2
156
"""Quick Controls 2 components"""
157
158
import qtpy.QtQuickWidgets
159
"""Quick widget integration"""
160
```
161
162
Usage example:
163
164
```python
165
from qtpy.QtWebEngineWidgets import QWebEngineView
166
from qtpy.QtQml import QQmlApplicationEngine
167
from qtpy.QtQuickWidgets import QQuickWidget
168
169
# Web and QML functionality
170
web_view = QWebEngineView()
171
qml_engine = QQmlApplicationEngine()
172
quick_widget = QQuickWidget()
173
```
174
175
### Platform and Hardware Modules
176
177
Hardware interface and platform-specific functionality modules.
178
179
```python { .api }
180
import qtpy.QtBluetooth
181
"""Bluetooth connectivity"""
182
183
import qtpy.QtNfc
184
"""Near Field Communication"""
185
186
import qtpy.QtSerialPort
187
"""Serial port communication"""
188
189
import qtpy.QtSensors
190
"""Hardware sensor access"""
191
192
import qtpy.QtPositioning
193
"""Positioning and location services"""
194
195
import qtpy.QtLocation
196
"""Maps and location-based services"""
197
198
import qtpy.QtNetworkAuth
199
"""Network authentication"""
200
201
import qtpy.QtTextToSpeech
202
"""Text-to-speech functionality"""
203
```
204
205
Usage example:
206
207
```python
208
from qtpy.QtSerialPort import QSerialPort
209
from qtpy.QtBluetooth import QBluetoothDeviceDiscoveryAgent
210
from qtpy.QtSensors import QAccelerometer
211
212
# Hardware interface functionality
213
serial_port = QSerialPort()
214
bluetooth_discovery = QBluetoothDeviceDiscoveryAgent()
215
accelerometer = QAccelerometer()
216
```
217
218
### Platform-Specific Modules
219
220
Operating system specific functionality and integrations.
221
222
```python { .api }
223
import qtpy.QtMacExtras
224
"""macOS-specific functionality"""
225
226
import qtpy.QtWinExtras
227
"""Windows-specific functionality"""
228
229
import qtpy.QtX11Extras
230
"""X11-specific functionality"""
231
```
232
233
Usage example:
234
235
```python
236
try:
237
from qtpy.QtMacExtras import QMacToolBar
238
# macOS specific code
239
except ImportError:
240
# Handle platform not supported
241
pass
242
```
243
244
### Development and Tool Modules
245
246
Modules for development tools, state machines, and inter-process communication.
247
248
```python { .api }
249
import qtpy.QtDesigner
250
"""Qt Designer integration"""
251
252
import qtpy.QtUiTools
253
"""UI form loading at runtime"""
254
255
import qtpy.QtStateMachine
256
"""State machine framework"""
257
258
import qtpy.QtScxml
259
"""SCXML state machine support"""
260
261
import qtpy.QtRemoteObjects
262
"""Inter-process object sharing"""
263
264
import qtpy.QtAxContainer
265
"""ActiveX container support (Windows)"""
266
```
267
268
### Document and Third-party Modules
269
270
PDF handling and third-party widget integration.
271
272
```python { .api }
273
import qtpy.QtPdf
274
"""PDF document handling"""
275
276
import qtpy.QtPdfWidgets
277
"""PDF widget classes"""
278
279
import qtpy.Qsci
280
"""QScintilla text editor integration"""
281
282
import qtpy.QtPurchasing
283
"""In-app purchase functionality"""
284
```
285
286
### Low-level Binding Modules
287
288
Access to underlying binding utilities for advanced use cases.
289
290
```python { .api }
291
import qtpy.sip
292
"""SIP binding utilities (for PyQt)"""
293
294
import qtpy.shiboken
295
"""Shiboken binding utilities (for PySide)"""
296
```
297
298
## Module Import Patterns
299
300
All Qt modules follow consistent import patterns regardless of the underlying binding:
301
302
```python
303
# Import entire module
304
from qtpy import QtCore, QtWidgets, QtGui
305
306
# Import specific classes
307
from qtpy.QtCore import QObject, QTimer, Signal, Slot
308
from qtpy.QtWidgets import QApplication, QWidget, QVBoxLayout
309
from qtpy.QtGui import QPixmap, QIcon, QFont
310
311
# Access module constants and enums
312
from qtpy.QtCore import Qt
313
print(Qt.AlignCenter) # Works across all bindings
314
315
# All imports work identically regardless of PyQt5/6 or PySide2/6
316
```
317
318
## Signal and Slot Compatibility
319
320
QtPy normalizes signal and slot syntax across bindings:
321
322
```python
323
from qtpy.QtCore import Signal, Slot, QObject
324
325
class MyClass(QObject):
326
# Signal definition (consistent across bindings)
327
my_signal = Signal(int, str)
328
329
@Slot()
330
def my_slot(self):
331
"""Slot definition (consistent across bindings)"""
332
pass
333
334
# Property definition
335
from qtpy.QtCore import Property
336
337
class MyWidget(QWidget):
338
def __init__(self):
339
super().__init__()
340
self._value = 0
341
342
@Property(int)
343
def value(self):
344
return self._value
345
```
346
347
## Qt Enum Access
348
349
QtPy handles enum access differences between Qt bindings:
350
351
```python
352
from qtpy.QtCore import Qt
353
from qtpy.QtWidgets import QWidget
354
355
# Enum access works consistently
356
widget = QWidget()
357
widget.setAlignment(Qt.AlignCenter)
358
widget.setWindowFlag(Qt.WindowStaysOnTopHint)
359
360
# Works with both scoped (Qt6) and unscoped (Qt5) enum access
361
```