Fact-checked by Grok 2 weeks ago

PyQt

PyQt is a comprehensive set of bindings for the application framework developed by , enabling developers to create cross-platform graphical user interfaces (GUIs), applications, and other software using Python's syntax and Qt's extensive feature set. Implemented as over 1,000 Python modules and classes, PyQt provides access to Qt's core functionalities, including widgets, networking, databases, threads, and 3D graphics, while supporting platforms such as Windows, macOS, , , and . Developed by Riverbank Computing Limited and first released in 1998 by , PyQt has evolved through several versions to align with 's advancements, with active releases as of 2025 including PyQt6 (supporting 6) and PyQt5 (supporting 5), while earlier PyQt4 for 4 is discontinued. An official alternative is , provided by under the LGPL. It employs 's signal and slot mechanism for and integrates seamlessly with tools like Qt Designer for visual UI design, making it a popular for in . PyQt is dual-licensed under the GNU General Public License (GPL) version 3 and a license from Riverbank Computing, though it requires separate licensing for itself, which is available under LGPL for open-source use. This licensing structure supports both projects and proprietary applications, contributing to its widespread adoption in industries ranging from desktop software to embedded systems.

Introduction

Definition and Purpose

PyQt is a set of Python bindings for the application framework developed by , implemented as a collection of Python modules that provide access to over 1,000 classes from the underlying C++ library. This enables programmers to utilize Qt's extensive functionality for developing graphical user interfaces (GUIs), non-GUI applications, and cross-platform software without needing to write C++ code directly. The primary purpose of PyQt is to empower Python developers to create feature-rich applications by combining 's ease of use and rapid development capabilities with 's robust toolkit for handling , networking, databases, and more. It leverages core mechanisms such as widgets for components, the signal-and-slot system for event-driven communication, and comprehensive event handling to build responsive and interactive software. itself is a cross-platform C++ framework originally developed in 1990 by Norwegian programmers Haavard Nord and Eirik Chambe-Eng, whose company Trolltech released its first public version in 1995 to facilitate application development across multiple operating systems. Key benefits of PyQt include its support for cross-platform deployment on desktop platforms such as Windows, macOS, and , with and support available in PyQt5, allowing a single to target diverse environments with native performance. Additionally, its seamless with Python's vast of libraries accelerates prototyping and extends functionality for , web services, and scientific computing, making it ideal for both commercial and open-source projects.

Licensing and Alternatives

PyQt is dual-licensed under the GNU General Public License version 3 (GPL v3) for open-source projects and a commercial license provided by Riverbank Computing for development. Unlike the underlying framework, PyQt is not available under the Lesser General Public License (LGPL). It is developed and maintained by Riverbank Computing, a British founded by . For commercial use incompatible with the GPL—such as closed-source applications—a must be purchased from Riverbank Computing, which covers all of their commercial products including PyQt. Binary wheels for the GPL versions of PyQt6 and PyQt5 incorporate the LGPL edition of libraries, allowing free installation via package managers like without separately acquiring , though PyQt's bindings themselves still require the commercial for non-GPL scenarios. The primary alternative to is , the official Python bindings for developed by (formerly sponsored by ). is licensed under the LGPL, enabling both open-source and commercial use without the GPL's source code disclosure requirements, making it a more permissive option for proprietary projects. In 2009, , then owner of , approached Riverbank Computing to request LGPL licensing for PyQt but could not reach an agreement, prompting to initiate the project as an LGPL-compliant alternative. PySide aims for high API compatibility with PyQt to facilitate code portability, supporting PyQt's API version 2 and mirroring most Qt class behaviors. However, differences exist in certain modules, such as the removal of Qt-specific types like QString and QVariant in favor of native Python equivalents, and variations in methods like QFileDialog that return tuples instead of filtered strings. These adjustments prioritize Pythonic idioms while maintaining core functionality for cross-platform GUI development.

Historical Development

Origins and Early Releases

PyQt originated in 1998 when , founder of the British software company Riverbank Computing, developed it as a set of Python bindings for the cross-platform , specifically targeting Qt versions 1.x and 2.x. This effort was driven by the growing demand among developers for access to Qt's robust (GUI) capabilities, which had become publicly available following Trolltech's initial release of Qt 0.90 in May 1995. Thompson's motivation stemmed from the limitations of existing Python GUI tools at the time, positioning PyQt as a bridge to leverage Qt's C++-based widgets, signals, and event handling in a Pythonic manner. Central to PyQt's early development was the creation of , a specialized tool for generating Python bindings from C and C++ libraries, which originally built in 1998 explicitly for this project. Riverbank Computing, initially operating as 's venture before formal incorporation in 2001, focused on using to automate the binding process, ensuring fidelity to Qt's object-oriented design while simplifying integration with 's dynamic typing. This approach allowed for efficient wrapping of Qt's core functionalities, such as window management and multimedia support, without manual coding for each interface element. Early iterations emphasized compatibility with systems, aligning with Qt's primary platforms under Trolltech's stewardship. The inaugural release, PyQt v1 in 1998, supported Qt 1.0 and marked the project's debut, initially bundled with PyKDE bindings before separating into distinct packages. PyQt v2 followed in 1999–2000, extending support to Qt 2.x and introducing enhancements for cross-platform deployment, including initial Windows compatibility by 2000. By 2002, PyQt v3 arrived to align with Qt 3, providing bindings for over 300 classes and approximately 5,750 functions and methods, which encompassed advanced features like rich text editing and database integration. This version, maintained through 2006, solidified PyQt's role in the ecosystem, with support expanding to Mac OS X and embedded platforms like Zaurus by 2002. Early adoption of PyQt occurred primarily within Python GUI development communities, where it powered initial projects requiring sophisticated, cross-platform interfaces, such as desktop applications and tools integrated with the desktop environment. Its evolution remained closely tied to Trolltech's advancements in , ensuring that PyQt bindings mirrored the framework's updates in widget libraries and performance optimizations, thereby fostering its use in academic and open-source initiatives during the early .

Key Milestones and Licensing Changes

PyQt4, released in June 2006 to align with 4's launch the previous year, marked a significant advancement in Python bindings for , introducing enhanced support for and features that facilitated the development of more sophisticated applications. During this era, spanning roughly 2006 to 2012, PyQt saw widespread adoption in open-source tools, exemplified by its use in the e-book management software Calibre, which leveraged PyQt4 for its cross-platform interface and functionality. Additionally, integration with for was established in PyQt4 version 4.2 and later releases around 2006, enabling seamless interaction with system services on and other platforms. A pivotal licensing development occurred in when , the then-owner of , requested that Riverbank Computing release PyQt under the LGPL to promote broader open-source adoption, but Riverbank declined to shift from its dual GPL/ model. This disagreement prompted to develop as an official LGPL-licensed alternative, with version 1.0 launching in August to provide Python developers with a permissive option aligned with 's evolving . Despite this, PyQt maintained its established licensing structure, supporting continued growth through paid licenses that allowed proprietary application development without GPL obligations. PyQt5 emerged in mid-2013, synchronized with Qt 5's December 2012 release, and fully dropped support for Qt 4 to focus on modern features while emphasizing Python 3 compatibility. This version expanded PyQt's capabilities for web integration, , and sensor handling, and remains maintained in alignment with Qt 5's (LTS) lifecycle, which extends to at least 2025 for commercial users. The shift underscored PyQt's commitment to Qt's progression without altering its core licensing approach. PyQt6 debuted on January 4, 2021, shortly after Qt 6's October 2020 launch, incorporating support for contemporary hardware such as and architectures to ensure compatibility with emerging platforms. As of November 2025, PyQt6 continues to receive regular updates, with version 6.10 aligning to Qt 6.10 from October 2025, reflecting ongoing enhancements while preserving the dual GPL/commercial licensing that has sustained its commercial viability.

Technical Architecture

Binding Mechanism

PyQt employs the SIP tool to generate Python bindings for the Qt framework's C++ API, enabling seamless integration between Python code and Qt's object-oriented structure. SIP processes specification files (typically with a .sip extension) that meticulously describe Qt's , methods, and attributes, translating them into Python extension modules. These modules are compiled from the generated C++ wrapper code, allowing Python developers to interact with functionality as if it were native code. This binding approach ensures that complex C++ features are exposed in a Pythonic manner, maintaining the efficiency of the underlying C++ implementation while leveraging 's dynamic typing and ease of use. A core aspect of PyQt's binding mechanism is its support for C++ , which permits classes to directly subclass Qt classes such as QWidget or QObject. This enables developers to extend Qt components with custom logic without needing to write additional C++ code. also handles method overloading by generating distinct method signatures or using argument types to disambiguate calls, preserving Qt's polymorphic behavior. Furthermore, the bindings fully integrate Qt's meta-object system, including , which facilitate event-driven communication; functions can be connected as slots to Qt signals, and custom signals can be emitted from subclasses, ensuring type-safe and loosely coupled interactions. Memory management in PyQt is streamlined through SIP's integration with Python's garbage collection system, eliminating the need for manual deallocation that is required in native Qt C++ development. Qt's parent-child hierarchy for object ownership is preserved, where child objects are automatically deleted when their parent is destroyed, complementing Python's to prevent leaks. SIP provides mechanisms for explicit ownership transfer between Python and C++ contexts, such as the sipTransferToCpp function, to avoid double deletion or dangling references. This hybrid approach allows the event loop to run within Python's execution model, where Qt's QCoreApplication or QApplication instances manage the main loop alongside Python's interpreter. In contrast to native Qt, PyQt incorporates Pythonic idioms like list comprehensions and dynamic attribute access alongside Qt methods, reducing boilerplate while avoiding explicit memory calls like delete.

Core Components and Modules

PyQt provides Python bindings to the Qt framework's extensive library of modules, enabling developers to access a wide range of functionalities through Pythonic interfaces. These modules are organized into core essentials and numerous add-ons, collectively comprising over 35 extension modules that cover development, networking, persistence, , and more. The bindings ensure that Qt's C++ classes are exposed as Python modules, prefixed with PyQt6. (or PyQt5. for the prior version), allowing seamless integration without delving into low-level implementation details. The core modules form the foundation for most PyQt applications. The QtCore module supplies non-graphical essentials, including the event loop, signal-slot mechanism for object communication, threading support, input/output operations, resource management, and container classes, as well as utilities like handling. For instance, classes such as QTimer enable periodic tasks and event-driven timing without blocking the main thread. The QtGui module handles low-level graphics and integration, providing classes for painting, font rendering, image processing, text , and support, serving as the basis for higher-level rendering. Complementing these, the QtWidgets module delivers ready-to-use elements for desktop-style interfaces, including widgets like buttons, labels, and dialogs, along with managers for automatic positioning and model/ frameworks for display; a key class like QMainWindow structures complex applications with menus, toolbars, and central content areas. Beyond the essentials, PyQt includes add-on modules that extend capabilities into specialized domains. The QtNetwork module facilitates network programming with classes for / sockets, HTTP requests, and secure connections via SSL/TLS. QtSql offers a for querying and manipulating data across drivers like , , and , supporting prepared statements and transaction management. For multimedia handling, provides tools for audio and video playback, recording from devices like cameras and microphones, and integration with backends such as FFmpeg. Similarly, QtWebEngine embeds Chromium-based web views, enabling browser-like functionality within applications for rendering , JavaScript execution, and web content display. Other add-ons, such as QtDBus for and Qt3D for 3D graphics, contribute to the total of over 35 modules, allowing PyQt to address diverse application needs from web to spatial audio. Supporting these modules are utility tools that streamline development workflows. The pyuic6 command-line tool compiles Designer .ui files—created visually in the Designer —into code, generating classes that load and instantiate layouts. pylupdate6 scans source files to extract translatable strings, updating .ts files for with Linguist. PyQt also includes plugins for Designer, allowing custom widgets to be dragged and dropped during design. While earlier versions featured pyrcc for compiling resource files (.qrc) into modules for embedding images and data, PyQt6 encourages native resource handling for greater flexibility. These utilities integrate directly with PyQt's ecosystem, enhancing productivity without requiring manual binding adjustments.

Version Information

Release History

PyQt's release history closely mirrors the evolution of the underlying framework, with each major version of PyQt providing bindings for the corresponding Qt release while adapting to advancements in language support and platform capabilities. The initial version, PyQt 1.0, was released in 1998 to provide Python bindings for Qt 1.x. PyQt 2.0 followed in 1999, aligning with Qt 2.x and introducing enhanced widget support. In 2002, PyQt 3.0 was released to support Qt 3.x, adding modules for features like networking and XML processing, with initial ports to Mac OS X and Zaurus. PyQt 4.0 arrived in June 2006, binding to 4.x and requiring 2.5 or later; it introduced significant improvements in integration and support. This version remained actively developed until 4 reached end-of-life in December 2015, after which PyQt 4 became unsupported with no further releases.
VersionInitial Release DateCorresponding Qt VersionMinimum Python VersionKey Notes
PyQt 11998 1.x 1.xFirst public release by Riverbank Computing.
PyQt 21999 2.x 1.xAdded support for new Qt widgets and signals/slots enhancements.
PyQt 32002 3.x 2.2+Introduced separate modules for , , SQL, and XML; expanded platform support including Mac OS X.
PyQt 4June 2006 4.x 2.5+Full support for Qt's model/ and QSS styling; last version compatible with 2; unsupported since 2015.
PyQt 5June 17, 2013 5.x 2.6+ / 3.2+Dropped support for 4.x; focused on modern Qt features like integration; support for 2 dropped in 5.12 (2018); version 5.15 released December 2020 to align with 5.15 LTS.
PyQt 6January 4, 2021 6.x 3.6+ (3.9+ from 6.5 onward)Introduced architecture support and dropped deprecated Qt modules; version 6.0 in 2021, 6.5 in September 2023 for 6.5, and 6.10.0 on October 22, 2025 for 6.10; PyQt 5 entered post-Qt 6 release.
PyQt 5 initially supported Python 2.6+ and Python 3.2+, but dropped Python 2 support in version 5.12 (2018) and raised the minimum Python 3 version over time, aligning with the end of Python 2 support in 2020. PyQt 6 continued this trend, requiring Python 3.6 initially and raising the minimum to 3.9 starting with version 6.5, reflecting ongoing optimization for modern Python ecosystems. These changes ensured compatibility with contemporary language features while deprecating legacy elements from prior Qt versions.

Compatibility and Platform Support

PyQt6 provides cross-platform support aligned with Qt 6, enabling applications to run on Windows for both x86 and ARM64 architectures, macOS on and processors, and distributions supporting x86 and ARM architectures. Additionally, through Qt's mobile frameworks, PyQt6 supports deployment to and , though this typically requires cross-compilation and integration with platform-specific tools like Qt for Android or Qt for iOS. PyQt5 offers similar platform compatibility, supporting Windows (including legacy x86), macOS (Intel and ), Linux (x86), , and , as it binds to Qt 5. For development, PyQt5 binaries are available for on and (64-bit), Windows 11 (32-bit and 64-bit on , 64-bit on ) using MSVC 2022, and equivalent macOS configurations. PyQt versions are tightly coupled to their respective Qt releases: PyQt5 exclusively supports Qt 5, with the (LTS) version 5.15 having received standard support until May 26, 2025; extended security maintenance is available for users thereafter. PyQt6 binds only to Qt 6, including LTS releases such as 6.2 and , which are supported until at least March 31, 2026, for standard maintenance. System requirements for PyQt6 include 3.6 or later, along with 6 or higher for binding generation. PyQt5 requires 3.5 or later and 4.19 or higher. Both versions can be installed via , for example, using the command pip install PyQt6. Key limitations include the absence of support for Qt 4 after PyQt4, as subsequent versions do not maintain compatibility with that . For applications, especially on certain platforms like or systems, a commercial Qt license is required to comply with licensing terms beyond the open-source GPL options.

Practical Usage

Basic Hello World Example

A fundamental demonstration of PyQt involves creating a simple graphical user interface (GUI) application that displays an empty window, serving as an introduction to its core workflow. This example presupposes that Python 3.9 or later and PyQt6 are installed, enabling execution across platforms such as Windows, macOS, and Linux without modification. The following code snippet illustrates the essential steps: importing necessary modules from PyQt6.QtWidgets, instantiating a QApplication to manage the application lifecycle, defining a subclass of QWidget to represent the main window, configuring basic properties like title and size, displaying the window, and entering the event loop.
python
import sys
from PyQt6.QtWidgets import QApplication, QWidget

class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Hello World")
        self.resize(640, 480)

app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
In this structure, the QApplication instance, initialized with command-line arguments via sys.argv, oversees the application's , which processes user inputs and updates the interface continuously until termination. The MainWindow class subclasses QWidget, the foundational class for all elements in PyQt, allowing customization of the window's title with setWindowTitle and dimensions with resize; QWidget instances are invisible by default and become visible upon calling show(). The app.exec() call (or exec() in older conventions) launches the , implicitly establishing the framework for PyQt's signal-slot mechanism to handle interactions, though no custom signals are defined here. Executing the script results in a blank titled "Hello World" appearing on the , which remains open until closed by the user (e.g., via the window's close button), confirming the application's responsiveness and PyQt's platform-agnostic rendering.

Tools and Integration

PyQt provides several utility tools to streamline the development of graphical user interfaces, including support for Qt Designer, a visual form editor that allows developers to create and prototype UI layouts using a drag-and-drop without writing code manually. Qt Designer generates .ui files in XML format, which can then be converted into source code using the pyuic6 tool, a command-line utility bundled with PyQt6 that translates these files into callable Python classes inheriting from appropriate Qt widgets. For example, running pyuic6 -o ui_mainwindow.py mainwindow.ui produces a Python module that can be imported and instantiated in an application to load the designed UI. Python plugins for Qt Designer are also available, enabling custom widget integration directly within the designer environment to enhance its extensibility for PyQt-specific components. Regarding resource management, earlier versions of PyQt included pyrcc, a tool for compiling Qt resource files (.qrc) into Python modules that embed assets like images, icons, and stylesheets. However, in PyQt6, support for Qt's resource system has been removed, eliminating pyrcc6 in favor of standard Python mechanisms for handling files, such as direct filesystem access or packaging tools, to simplify distribution and reduce dependencies. Developers can achieve similar functionality using third-party alternatives like pyqt6rc, which converts resources into Python-compatible formats, or by leveraging Python's built-in resource handling in frozen applications. PyQt integrates seamlessly with various Python libraries to extend its capabilities in data processing and concurrency. For instance, it works with for handling numerical data in visualizations, particularly through QtCharts, where NumPy arrays can be converted to QAbstractSeries for plotting charts like line or bar graphs in real-time applications. Threading integration leverages Qt's QThread class, which allows background tasks to run without blocking the GUI event loop, using Python's threading module alongside Qt signals for safe cross-thread communication to update UI elements. For , PyQt includes the QtDBus module, which provides bindings for , and can be combined with the dbus-python library to enable service registration and method calls across applications on systems. Additionally, PyQt supports embedding web content via PyQtWebEngine, allowing integration with web frameworks like Flask or for hybrid desktop-web applications. In development workflows, PyQt applications are commonly managed within Python virtual environments to isolate dependencies and ensure across projects, using tools like venv or conda to install PyQt without system-wide conflicts. For , PyInstaller is a popular choice to bundle PyQt apps into standalone executables, automatically detecting and including Qt libraries, DLLs, and resources while supporting options like --onefile for single-executable builds on Windows, macOS, and . benefits from Qt's signal-slot mechanism, where connections between objects can be traced to identify emission issues or slot executions, often using Qt's built-in logging or integrated IDE debuggers like those in or VS Code. Best practices for PyQt development emphasize separating UI code from application logic to promote and ; for example, load UI files dynamically with QUiLoader instead of generating static Python classes, keeping business logic in independent classes that interact via . Handling cross-platform differences in styling involves using Qt Style Sheets (QSS) for consistent appearance or detecting the platform with QSysInfo to apply native-like adjustments, ensuring the application adapts to Windows, macOS, or without hardcoded tweaks.

Adoption and Applications

Notable Software Using PyQt

PyQt has been instrumental in developing a range of cross-platform desktop applications, particularly in education, productivity, and scientific domains, leveraging its robust GUI capabilities for complex interfaces. One prominent example is , a program used for language learning and exam preparation, which employs PyQt6 to deliver its intuitive, responsive across Windows, macOS, and . As of 2025, Anki's latest versions integrate PyQt6 for enhanced performance and compatibility with modern Qt features. Calibre, an open-source e-book management tool for organizing, converting, and editing digital libraries, utilizes PyQt6 to power its advanced editing tools and multi-pane layouts, enabling seamless handling of metadata and formats like and PDF. The Dropbox desktop client, a application serving millions of users, was primarily built with and PyQt (initially PyQt5) to provide a unified, cross-platform experience for file management and cloud integration. Eric , a full-featured , relies on PyQt6 for its extensible interface, including multi-tab editors, debuggers, and integration, making it suitable for professional development. Spyder, a scientific popular among data scientists, employs QtPy—an supporting PyQt5 and PyQt6—to construct its explorer, console, and plotting panes, facilitating interactive data analysis. Orange, an open-source and toolkit, uses PyQt6 to create its drag-and-drop workflow canvas and interactive widgets for pipelines and statistical visualizations. fman, a dual-pane designed for efficiency, is developed with PyQt to offer plugin extensibility and rapid navigation features, positioning it as a lightweight alternative to traditional explorers on desktop platforms. As of 2025, a notable trend in PyQt adoption is the migration to PyQt6 in new and updated applications like and , driven by 6's improved performance and web engine support, while legacy software such as older versions maintains PyQt5 for stability. This evolution underscores PyQt's versatility in building responsive, feature-rich UIs for productivity and scientific tools, demonstrating its enduring impact on desktop software ecosystems.

Broader Use Cases and Community

PyQt extends beyond basic desktop applications to support a range of specialized use cases, including the creation of graphical user interfaces for tools that integrate seamlessly with libraries like for embedding interactive plots and visualizations within PyQt windows. This integration enables dynamic data exploration and scientific plotting directly in Python-based GUIs, leveraging Qt's model-view architecture for efficient handling of large datasets. Multimedia applications also benefit from PyQt, as demonstrated by examples like Failamp, a and player that utilizes Qt's multimedia modules to manage audio playback and user interfaces in a cross-platform manner. In embedded systems, PyQt provides robust support for architectures, allowing developers to deploy applications on devices such as the , where is facilitated through Raspbian repositories and enables hardware-interfacing projects like motor control interfaces. For mobile development, PyQt leverages Qt's platform extensions to target and , enabling the packaging and deployment of Python apps on these systems, though it requires additional configuration for native performance. QtWebEngine further supports hybrid applications by embedding web content within PyQt interfaces, allowing desktop apps to incorporate browser-based elements without full web framework dependency. Across domains, PyQt powers tools in scientific computing, such as the , which employs —an supporting PyQt bindings—to deliver an integrated for , , and tailored to researchers and analysts. In publishing, applications like Calibre utilize PyQt for e-book management interfaces, handling metadata, conversions, and library organization with Qt's . Educational tools and broader scientific workflows similarly adopt PyQt for its cross-platform reliability and ease of integration with ecosystems. The PyQt community thrives through dedicated resources, including the Riverbank Computing mailing list for developer discussions and issue resolution. Qt's official forums host extensive threads on PyQt bindings, offering guidance on integration and troubleshooting for both PyQt and alternative bindings like . Practical learning is bolstered by repositories such as the official PyQt examples on , which provide reusable code snippets and full demo applications to illustrate core concepts. Comprehensive tutorials and books, notably "Rapid GUI Programming with Python and Qt" by Mark Summerfield, serve as foundational references, covering PyQt fundamentals through project-based examples. Stack Overflow remains a vibrant hub, with thousands of tagged questions addressing real-world PyQt challenges and solutions. Looking ahead, PyQt continues to grow with the adoption of Qt 6, as evidenced by updated bindings in PyQt6 that enhance performance and modern features like improved graphics, with active maintenance and new releases supporting 3.12 compatibility as of 2025. While facing competition from web-based technologies for cross-platform deployment, PyQt maintains a strong position for native desktop applications due to its superior performance in rendering complex UIs and hardware integration.

References

  1. [1]
    PyQt - Riverbank Computing | Introduction
    PyQt is a set of Python bindings for The Qt Company's Qt application framework. The bindings are implemented as a set of Python modules and contain over 1,000 ...PyQt Download · Buy PyQt · PyQt-WebEngine · PyQt-DataVisualization
  2. [2]
    Phil Thompson Talks About PyQt - KDE.news
    Aug 9, 2006 · PyQt are the Python bindings for Qt. PyQt v3 supports Qt v1 to v3. PyQt v4 supports Qt v4. The first release was also in 1998, although named ...
  3. [3]
    License FAQ - Riverbank Computing
    If your license is incompatible with the GPL then you need a commercial PyQt license. If your license is also incompatible with the LGPL then you also need a ...
  4. [4]
    About Qt - Qt Wiki
    Jul 18, 2022 · Qt is a cross-platform application development framework for desktop, embedded and mobile, written in C++ and not a programming language itself.
  5. [5]
    Buy PyQt - Riverbank Computing
    A commercial PyQt license covers all of Riverbank's commercial products. We do not sell these products individually. A license is required to cover each of your ...
  6. [6]
    PySide released to the wild - Qt
    Aug 25, 2009 · PySide is a project that is run by INdT and sponsored by Nokia that provides Python bindings for Qt under the LGPL. These bindings are ...
  7. [7]
    PySide Brings LGPL Qt to Python - KDE.news
    Aug 18, 2009 · PySide is a project providing an LGPL'd set of Python bindings for the Qt framework. PySide already provides a full set of Qt bindings as well ...
  8. [8]
    Considerations - Qt for Python - Qt Documentation
    One of the goals of PySide6 is to be API compatible with PyQt, with certain exceptions. The latest considerations and known issues will be also reported in the ...
  9. [9]
    Differences Between PySide and PyQt - Qt Wiki
    Feb 24, 2022 · PySide only supports PyQt's API 2 (see PSEP 101) for details. Therefore Qt classes such as QStrings, QStringLists, and QVariants are not available on PySide.API differences · PySide only supports PyQt's... · Differences in the functionality...Missing: compatibility | Show results with:compatibility
  10. [10]
    Introduction — sip documentation
    SIP is a tool for automatically generating Python bindings for C and C++ libraries. SIP was originally developed in 1998 for PyQt.
  11. [11]
    Qt History - Qt Wiki
    Aug 14, 2024 · Qt was conceived in 1990, first publicly released in 1995, and had a major makeover in 2005. Nokia acquired Trolltech in 2008, and Digia ...
  12. [12]
    SIP - A Python Bindings Generator for C and C++ Libraries - PyPI
    SIP is a collection of tools that makes it very easy to create Python bindings for C and C++ libraries. It was originally developed in 1998 to create PyQt ...Missing: origins | Show results with:origins
  13. [13]
    SIP - A Tool for Generating Python Bindings for C and C++ Libraries
    SIP was originally developed in 1998 for PyQt - the Python bindings for the Qt GUI toolkit - but is suitable for generating bindings for any C or C++ library.Missing: origins | Show results with:origins
  14. [14]
    [PDF] Introducing PyQt4* - CERN Indico
    Qt 3: PyQt is a set of bindings for Qt 3 by Phil Thompson at Riverbank ... 1998: First release. 2000: Windows release. 2002: Mac OS X and. Zaurus releases.
  15. [15]
    PyQt - Python Wiki
    Aug 18, 2021 · PyQt is one of the most popular Python bindings for the Qt cross-platform C++ framework. PyQt was developed by Riverbank Computing Limited.
  16. [16]
    Qt version history - Qt Wiki
    The latest Qt version is 6.5 (April 2023). 5.15 LTS and 6.2 LTS are supported. Qt 6.8 is the next LTS version (August 2024). Qt 4 is unsupported since 2015.
  17. [17]
    About Calibre
    Calibre is a powerful, free, open-source e-book manager that supports many e-readers, downloads metadata, and can convert file types.
  18. [18]
    dbus-python tutorial — dbus-python 1.3.2 documentation
    Jun 14, 2006 · PyQt v4.2 and later includes support for integrating dbus-python with the Qt event loop. To connect D-Bus to this main loop, call dbus ...
  19. [19]
    PyQt Commercial Version - Riverbank Computing
    The free versions are licensed under the GNU General Public License version 3. If your use of Riverbank's software is compatible with the GPL then you do not ...
  20. [20]
    PyQt v6.0.0 Released - Riverbank Computing
    Jan 4, 2021 · PyQt v6.0.0 Released. 4 January 2021. PyQt v6.0.0 has been released. This is the first release of the bindings for Qt v6. PyQt6-3D v6.0.0 ...
  21. [21]
    Riverbank Computing | News
    ### Summary of PyQt Versions and Milestones
  22. [22]
    Riverbank Computing | Introduction
    ### Summary of PyQt's Binding Mechanism Using SIP
  23. [23]
    SIP Documentation — sip documentation
    **Summary of SIP Features for Binding C++ to Python (especially Qt in PyQt):**
  24. [24]
    PyQt6 - PyPI
    Author: Riverbank Computing Limited; Requires: Python >=3.9. Release history Release notifications | RSS feed. This version. 6.10.0. Oct 22, 2025. 6.9.1. Jun 6 ...
  25. [25]
    Introduction — PyQt Documentation v6.10.0
    ### Summary of PyQt6 Modules, Components, and Utilities
  26. [26]
    Qt Core | Qt 6.10.0
    ### Summary of QtCore Module
  27. [27]
    Qt GUI | Qt 6.10.0
    ### Summary of QtGui Module
  28. [28]
    Qt Widgets | Qt 6.10.0
    ### Summary of Qt Widgets Module
  29. [29]
    Qt SQL | Qt 6.10.0
    ### Summary of Qt SQL Module
  30. [30]
    Qt Multimedia | Qt 6.10.0
    ### Summary of Qt Multimedia Module
  31. [31]
    About removing pyrcc in PyQt6 - Riverbank Computing
    Feb 6, 2022 · Removing pyrcc in PyQt6 means no conversion of qrc files to .py files, which hampers Qt Designer's convenience.
  32. [32]
    PyQt - Browse /PyQt5/PyQt-5.0 at SourceForge.net
    The GPL licensed Python bindings for the Qt application framework ... As of 2019-03-20, this project can be found here. Summary · Files ...
  33. [33]
  34. [34]
  35. [35]
    PyQt6 - Python GUIs
    Applications built with PyQt6 will run on any platform supported by Qt & Python including Windows, OS X, Linux, iOS and Android. Created by Riverbank ...
  36. [36]
    Supported Platforms | Qt 6.10 - Qt Documentation
    The Qt Company offers commercial support for all officially supported platforms and configurations. Note: Some of the platforms are only supported for certain ...
  37. [37]
    Extended Security Maintenance for Qt 5.15 begins May 2025
    Mar 12, 2025 · Standard support for Qt 5.15 will end after 26th of May 2025, as communicated earlier. After the support period, the release will be in EoS (End of Support) ...
  38. [38]
    Qt | endoflife.date
    Oct 8, 2025 · Qt ; 6.7, 1 year and 7 months ago. (28 Mar 2024). Ended 1 year ago. (07 Oct 2024). Ended 7 months ago. (02 Apr 2025). 6.7.3. (27 Sep 2024) ; 6.6 ...
  39. [39]
    Qt 6.5 Release - Qt Wiki
    Aug 29, 2025 · Note! Qt 6.5 standard support ends 30th of March 2026. Phase, Original plan, Updated plan, Realized, Blog post link. Qt ...
  40. [40]
    PyQt5-sip - PyPI
    The sip module support for PyQt5. Project description: The sip extension module provides support for the PyQt5 package.12.8.1 Aug 29, 2020 · 12.9.0 May 11, 2021 · 4.19.15 Mar 19, 2019
  41. [41]
    Qt LTS: Stable & Reliable Development
    Qt LTS versions are released every 2 years and maintained for up to 5 years with a customer-centric roadmap, offering scalability across different platforms and ...
  42. [42]
    QApplication Class | Qt Widgets | Qt 6.10.0
    QApplication specializes QGuiApplication with some functionality needed for QWidget-based applications. It handles widget specific initialization, finalization.QGuiApplication Class · QCoreApplication Class · List of all members
  43. [43]
    Create your first Python GUI with PyQt6 — A simple Hello world app
    Nov 26, 2024 · In this tutorial we'll learn how to use PyQt6 to create desktop applications with Python. First we'll create a series of simple windows on your desktop.
  44. [44]
    Qt Designer and Python: Build Your GUI Applications Faster
    Qt Designer is a Qt tool that provides you with a what-you-see-is-what-you-get (WYSIWYG) user interface to create GUIs for your PyQt applications productively ...Missing: pyrcc6 | Show results with:pyrcc6
  45. [45]
    Downloading QtDesigner for PyQt6 and converting .ui file to .py file ...
    Mar 13, 2021 · You can use pyuic6: pyuic6 -o output.py -x input.ui but in some cases there are problems in that the command is not found in the CMD/console.Where is the QtDesigner in PyQt6? - Stack OverflowConverting .ui to .py with Python 3.10 on PyQt6 - Empty .py file resultMore results from stackoverflow.com
  46. [46]
    Create your first PyQt6 app in Qt Creator - Python GUIs
    May 23, 2025 · In this tutorial, we'll cover the basics of creating UIs with _Qt Designer_, which is a drag-and-drop UI editor.Pyqt6 Tutorial -- Creating... · Laying Out Your Main Window · Using Your Generated . Ui...Missing: pyrcc6 | Show results with:pyrcc6<|control11|><|separator|>
  47. [47]
    pyside6-uic - Qt for Python
    pyside6-uic is a command line tool for converting .ui files into .py files, with the objective of using application designs as Python classes.
  48. [48]
    How can resources be provided in PyQt6 (which has no pyrcc)?
    Feb 8, 2021 · The consensus seems to be that the existing python facilities should be used instead of pyrrc. So the resources would be stored directly in the file-system.Eclipse external tool for Qt .ui to .py with pyuic - Stack OverflowCustomize pyuic's resource import statement? - pyqt - Stack OverflowMore results from stackoverflow.com
  49. [49]
    domarm-comat/pyqt6rc: PyQt6 UI templates resource converter
    This library offers scripts to correct resource paths in files generated by the pyuic6 command. Since PyQt6 does not include the pyrcc6 script for ...
  50. [50]
    PyQtGraph - Scientific Graphics and GUI Library for Python
    PyQtGraph is a pure-python graphics and GUI library built on PyQt / PySide and numpy. It is intended for use in mathematics / scientific / engineering ...
  51. [51]
    Multithreading PyQt5 applications with QThreadPool - Python GUIs
    Apr 4, 2025 · Qt provides a very simple interface for running jobs in other threads, which is exposed nicely in PyQt. This is built around two classes: ...
  52. [52]
    PySide6.QtDBus - Qt for Python
    The following documents contain information about Qt's D-Bus integration features, and provide details about the mechanisms used to send and receive type ...
  53. [53]
    PyQt6 Tutorial 2025, Create Python GUIs with Qt
    May 19, 2025 · PyQt is a Python library for creating GUI applications using the Qt toolkit. Created by Riverbank Computing, PyQt is free software (GPL ...
  54. [54]
    Packaging PyQt5 applications for Windows, with PyInstaller ...
    Oct 18, 2024 · In this tutorial, we'll go through a series of steps to use PyInstaller to build simple and complex PyQt applications into distributable EXE
  55. [55]
    How to decouple UI from logic on Pyqt/Qt apps properly?
    Sep 16, 2016 · Design logic decoupled from UI, making the UI dummy. Avoid coupling the model to the UI framework, using regular callbacks instead.Should I put UI and logic in separate classes?PyQt application architecture - Software Engineering Stack ExchangeMore results from softwareengineering.stackexchange.com
  56. [56]
    How can i fall back to pyqt6.9.1 version when installed by pypi?
    Sep 14, 2025 · Hi, i'm the maintainer of snap anki package. I've noticed a blank main window issue with the latest version 25.09, while the previous build, ...Missing: Calibre Spyder Eric Thonny Orange
  57. [57]
    Anki lagging after 25.02 update - Help
    Feb 19, 2025 · It works for some time, and then it starts to lag. Anki 25.02 (038d85b1) Python 3.9.18 Qt 6.6.2 PyQt 6.6.1. Platform: macOS-13.5.2-x86_64- ...
  58. [58]
    Error:PyQt6.QtWebEngineCore - Calibre - MobileRead Forums
    Jul 19, 2023 · There is the following paragraph: The Calibre issues is because various pyqt6 packages were rebuilt against the new qt6 in staging but not in ...PyQt QWebView & calibre WebView - MobileRead ForumsUse calibre ebook-convert as a Python Module - MobileRead ForumsMore results from www.mobileread.com
  59. [59]
    Dropbox uses Python a lot, is it also the case for their Windows client?
    Jul 26, 2022 · Yes, their desktop clients were mainly written in Python (with Qt) and shared a lot of code between platforms. Right now I'm looking at ...
  60. [60]
    Dropbox hanging on PyQt5.QtDBus.so - AUR - Manjaro Linux Forum
    May 20, 2023 · Hi, I am not sure when this began happening but after a recent update I believe, dropbox is no longer syncing. It just gives the message ...Missing: Leo Virtaal 2025
  61. [61]
    The Eric Python IDE
    ### Summary of Eric IDE
  62. [62]
    spyder-ide/qtpy: Provides an uniform layer to support PyQt5 ... - GitHub
    QtPy is a small abstraction layer that lets you write applications using a single API call to either PyQt or PySide. It provides support for PyQt5, PySide2, ...
  63. [63]
    Orange Data Mining - Download.
    If your system does not already provide PyQt, install it from PyPI pip install PyQt6 PyQt6-WebEngine. Finally, install Orange pip install orange3. Installing ...
  64. [64]
    Electron alternative: Python and Qt. Create desktop apps in ... - fman
    fbs is the fastest way to create a desktop app. It solves common tasks such as packaging and deployment. Based on Python and Qt, fbs is a lightweight ...Documentation · Fbs Pro · PyQt6 Book 2025
  65. [65]
    Show HN: fman – file manager for programmers | Hacker News
    Mar 2, 2017 · If you mean fman then no: I thought about this long and hard but startup speed is crucial and Electron just doesn't cut it. It's based on PyQt.
  66. [66]
    Provide an easier way to change PyQt version - Anki Forums
    Jul 24, 2025 · Due to the issue mentioned in Anki 25.07/08 Beta 1-2 - #21 by vaibhav (issue introduced in pyqt-qt6 v6.8.2), I am using the latest Anki ...
  67. [67]
    PyQt5 for Data Science - Python GUIs
    With PyQt5 you can make use of Qt's model view architecture to display performant views of any Python data in your applications. Or embed matplotlib and ...Missing: cases: multimedia iOS
  68. [68]
    Example applications — Experiment with working demo apps
    Failamp, a Multimedia Player. Multimedia playlist and player in Python, using PyQt. PyQt5 · PyQt5 Tutorial · Tabbed web browsing. Use signal redirection to add ...
  69. [69]
    Install PyQt5 on Raspberry Pi Raspbian - Python GUIs
    Mar 16, 2023 · Installation on Raspberry Pi is very straightforward as packages for PyQt5 are available in Raspbian repositories.
  70. [70]
    Taking Qt for Python to Android
    Apr 19, 2023 · Qt for Python 6.5 release gives you a way to bring Python PySide GUI applications to Android platforms. This blog demonstrates a tutorial on ...
  71. [71]
    Can you develop web apps with pyQT? if not what is best for python ...
    PyQt is designed for desktop application development eg using your desktops GUI elements, rather than in a browser. For web development with Python the two ...
  72. [72]
    Plugin Development with Spyder
    Spyder uses qtpy which is an abstraction layer that allows you to work with Qt from Python regardless of whether you use either of the two reference libraries: ...
  73. [73]
    Failed to import PyQt module: PyQt6.QtWidgets (#1) · Issue - GitLab
    Jan 24, 2024 · Calibre not running. Steps to reproduce: Run $ calibre; See error: ❯ calibre Failed to import PyQt module: PyQt6.QtWidgets with error: /usr ...
  74. [74]
  75. [75]
    pyqt/examples: Learn to create a desktop app with Python and Qt
    These PyQt examples show you how to create a desktop app with Python and Qt. Start with "Hello World" or browse the official PyQt demos.
  76. [76]
    Rapid GUI Programming with Python and Qt - Mark Summerfield
    The book is ~550 pages (648 including the appendices and index), has a foreword by Phil Thompson creator of PyQt, and is published by Prentice Hall. It can ...Missing: 1998 | Show results with:1998
  77. [77]
    Newest 'pyqt' Questions - Stack Overflow
    Sep 30, 2025 · I am trying to have a Pen Tool in my pyqt6 application. I am trying to make it how Inkscape's PenTool works. For now, I am trying to achieve ...Missing: Riverbank forums, books tutorials,
  78. [78]
    Comparing PyQT to Webtechnologies for desktop apps - q&a
    Apr 2, 2025 · Now, I'm looking to compare different frameworks and need your advice on the following: PyQT/PySide6: What are the advantages of continuing with ...Missing: future outlook adoption competition tech