PySide

Last updated
PySide
Original author(s) The Qt Company (as part of Nokia)
Developer(s) The Qt Company
Initial releaseAugust 18, 2009;14 years ago (2009-08-18) [1]
Stable release
6.6.2 / February 15, 2024;33 days ago (2024-02-15) [2]
Written in Python
Operating system Linux/X11, macOS, Windows
License LGPL
Website pyside.org qt.io/qt-for-python

PySide is a Python binding of the cross-platform GUI toolkit Qt developed by The Qt Company, as part of the Qt for Python project. It is one of the alternatives to the standard library package Tkinter. Like Qt, PySide is free software. PySide supports Linux/X11, macOS, and Microsoft Windows. The project can also be cross compiled to embedded systems like Raspberry Pi, [3] [4] and Android devices. [5]

Contents

History

By 2009, Nokia, the then owners of the Qt toolkit, wanted Python binding available under the LGPL license. Nokia failed to reach an agreement with Riverbank Computing the developers of PyQt Python binding. [6] In August, Nokia released PySide. It provided similar functionality, but under the LGPL. [7] [8] 'Side' is Finnish for binding. [6]

There have been three major versions of PySide: [9]

PySide version 1 was released in August 2009 under the LGPL by Nokia, [1] then the owner of the Qt toolkit, after it failed to reach an agreement with PyQt developers Riverbank Computing [10] to change its licensing terms to include LGPL as an alternative license. It supported Qt 4 under the operating systems Linux/X11, Mac OS X, Microsoft Windows, Maemo and MeeGo, [11] while the PySide community added support for Android. [12]

PySide2 was started by Christian Tismer to port PySide from Qt 4 to Qt 5 in 2015. [13] The project was then folded into the Qt Project. [14] It was released in December 2018. [13]

PySide6 was released in December 2020. It added support for Qt 6 and removed support for all Python versions older than 3.6. [9]

The project started out using Boost.Python from the Boost C++ libraries for the bindings. It later created its own binding generator named Shiboken, [15] to reduce the size of the binaries and the memory footprint. [16] [ when? ]

Hello, World! example

# Import PySide6 classesimportsysfromPySide6importQtCore,QtWidgets# Create a Qt applicationapp=QtWidgets.QApplication(sys.argv)# Create a Windowmywindow=QtWidgets.QWidget()mywindow.resize(320,240)mywindow.setWindowTitle('Hello, World!')# Create a label and display it all togethermylabel=QtWidgets.QLabel(mywindow)mylabel.setText('Hello, World!')mylabel.setGeometry(QtCore.QRect(200,200,200,200))mywindow.show()# Enter Qt application main loopsys.exit(app.exec())

See also

Related Research Articles

<span class="mw-page-title-main">Qt (software)</span> Object-oriented framework for software development

Qt is cross-platform software for creating graphical user interfaces as well as cross-platform applications that run on various software and hardware platforms such as Linux, Windows, macOS, Android or embedded systems with little or no change in the underlying codebase while still being a native application with native capabilities and speed.

<span class="mw-page-title-main">Eclipse (software)</span> Software development environment

Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, until 2016, was the most popular. Eclipse is written mostly in Java and its primary use is for developing Java applications, but it may also be used to develop applications in other programming languages via plug-ins, including Ada, ABAP, C, C++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby, Rust, Scala, and Scheme. It can also be used to develop documents with LaTeX and packages for the software Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others.

wxWidgets Widget toolkit

wxWidgets is a widget toolkit and tools library for creating graphical user interfaces (GUIs) for cross-platform applications. wxWidgets enables a program's GUI code to compile and run on several computer platforms with minimal or no code changes. A wide choice of compilers and other tools to use with wxWidgets facilitates development of sophisticated applications. wxWidgets supports a comprehensive range of popular operating systems and graphical libraries, both proprietary and free, and is widely deployed in prominent organizations.

<span class="mw-page-title-main">PyQt</span> Python GUI library

PyQt is a Python binding of the cross-platform GUI toolkit Qt, implemented as a Python plug-in. PyQt is free software developed by the British firm Riverbank Computing. It is available under similar terms to Qt versions older than 4.5; this means a variety of licenses including GNU General Public License (GPL) and commercial license, but not the GNU Lesser General Public License (LGPL). PyQt supports Microsoft Windows as well as various kinds of UNIX, including Linux and MacOS.

<span class="mw-page-title-main">PyGTK</span> Set of Python wrappers for the GTK graphical user interface library

PyGTK is a set of Python wrappers for the GTK graphical user interface library. PyGTK is free software and licensed under the LGPL. It is analogous to PyQt/PySide and wxPython, the Python wrappers for Qt and wxWidgets, respectively. Its original author is GNOME developer James Henstridge. There are six people in the core development team, with various other people who have submitted patches and bug reports. PyGTK has been selected as the environment of choice for applications running on One Laptop Per Child systems.

Tkinter is a Python binding to the Tk GUI toolkit. It is the standard Python interface to the Tk GUI toolkit, and is Python's de facto standard GUI. Tkinter is included with standard Linux, Microsoft Windows and macOS installs of Python.

The following tables list notable software packages that are nominal IDEs; standalone tools such as source-code editors and GUI builders are not included. These IDEs are listed in alphabetic order of the supported language.

<span class="mw-page-title-main">Tk (software)</span> GUI toolkit or framework

Tk is a cross-platform widget toolkit that provides a library of basic elements of GUI widgets for building a graphical user interface (GUI) in many programming languages. It is free and open-source software released under a BSD-style software license.

fpGUI Graphical user interface toolkit in Object Pascal

fpGUI, the Free Pascal GUI toolkit, is a cross-platform graphical user interface toolkit developed by Graeme Geldenhuys. fpGUI is open source and free software, licensed under a Modified LGPL license. The toolkit has been implemented using the Free Pascal compiler, meaning it is written in the Object Pascal language.

Clutter is a discontinued GObject-based graphics library for creating hardware-accelerated user interfaces. Clutter is an OpenGL-based 'interactive canvas' library and does not contain any graphical control elements. It relies upon OpenGL (1.4+) or OpenGL ES for rendering,. It also supports media playback using GStreamer and 2D graphics rendering using Cairo.

Enthought, Inc. is a software company based in Austin, Texas, United States that develops scientific and analytic computing solutions using primarily the Python programming language. It is best known for the early development and maintenance of the SciPy library of mathematics, science, and engineering algorithms and for its Python for scientific computing distribution Enthought Canopy.

<span class="mw-page-title-main">Qt Creator</span> QT development environment

Qt Creator is a cross-platform C++, JavaScript, Python and QML integrated development environment (IDE) which simplifies GUI application development. It is part of the SDK for the Qt GUI application development framework and uses the Qt API, which encapsulates host OS GUI function calls. It includes a visual debugger and an integrated WYSIWYG GUI layout and forms designer. The editor has features such as syntax highlighting and autocompletion. Qt Creator uses the C++ compiler from the GNU Compiler Collection on Linux. On Windows it can use MinGW or MSVC with the default install and can also use Microsoft Console Debugger when compiled from source code. Clang is also supported.

<span class="mw-page-title-main">GTK</span> Free and open-source cross-platform widget toolkit for creating graphical user interfaces

GTK is a free software cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and proprietary software to use it. It is one of the most popular toolkits for the Wayland and X11 windowing systems.

<span class="mw-page-title-main">Spyder (software)</span> IDE for scientific programming in Python

Spyder is an open-source cross-platform integrated development environment (IDE) for scientific programming in the Python language. Spyder integrates with a number of prominent packages in the scientific Python stack, including NumPy, SciPy, Matplotlib, pandas, IPython, SymPy and Cython, as well as other open-source software. It is released under the MIT license.

<span class="mw-page-title-main">KDE Frameworks</span> Collection of libraries and software frameworks for the Qt framework

KDE Frameworks is a collection of libraries and software frameworks readily available to any Qt-based software stacks or applications on multiple operating systems. Featuring frequently needed functionality solutions like hardware integration, file format support, additional graphical control elements, plotting functions, and spell checking, the collection serves as technological foundation for KDE Plasma 5 and KDE Gear distributed under the GNU Lesser General Public License (LGPL).

<span class="mw-page-title-main">KDE Projects</span>

KDE Projects are projects maintained by the KDE community, a group of people developing and advocating free software for everyday use, for example KDE Plasma and KDE Frameworks or applications such as Amarok, Krita or Digikam. There are also non-coding projects like designing the Breeze desktop theme and iconset, which is coordinated by KDE's Visual Design Group. Even non-Qt applications like GCompris, which started as a GTK-based application, or web-based projects like WikiToLearn are officially part of KDE.

References

  1. 1 2 "PySide has been released". PySide – Python for Qt. August 18, 2009. Archived from the original on October 25, 2009.
  2. "PySide6 Release History". Python Package Index.
  3. "Qt for Python Cross compilation". Qt. The Qt Company. April 13, 2022.
  4. "Qt for Python details on the new 6.3 release". Qt. The Qt Company. April 13, 2022.
  5. "Taking Qt for Python to Android". Qt. The Qt Company. April 13, 2022.
  6. 1 2 faq, Martin Fitzpatrick Last updated (2019-06-21). "PyQt5 vs PySide2: What's the difference between the two Python Qt libraries?". Python GUIs. Retrieved 2022-06-25.
  7. "FAQ – PySide – Python for Qt". Pyside.org. Archived from the original on 2012-01-11. Retrieved 2009-09-03.
  8. "PySide has been released – PySide – Python for Qt". Pyside.org. 2009-08-18. Archived from the original on 2009-10-25. Retrieved 2009-09-03.
  9. 1 2 Maureira-Fredes, Cristián (December 10, 2020). "Qt for Python 6 released". Qt. The Qt Company.
  10. "PySide FAQ". Qt Wiki. July 31, 2017. Retrieved February 24, 2021.
  11. "PySide Downloads". Qt Wiki. February 16, 2018. Retrieved February 24, 2021.
  12. "PySide for Android guide". Qt Wiki. February 26, 2018. Retrieved February 24, 2021.
  13. 1 2 "Qt for Python". Qt Wiki. December 16, 2020. Retrieved February 24, 2021.
  14. Knoll, Lars; Tismer, Christian (April 11, 2016). "Bringing pyside back to Qt Project". pyside-dev Google Group. Retrieved February 24, 2021.
  15. "Shiboken". Qt Documentation. The Qt Company. Retrieved February 24, 2021.
  16. "PySide Shiboken FAQ". Qt Wiki. June 5, 2016. Retrieved February 24, 2021.