PySide
Computer program in the Python language
- 2 min read
- 2 chapters
Related on Lably
Through Python (programming language), Graphical user interface and Microsoft Windows
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 the PyQt Python binding. In August, Nokia released PySide. It provided similar functionality, but under the LGPL. 'Side' is Finnish for binding.
There have been three major versions of PySide:
- PySide supports Qt 4
- PySide2 supports Qt 5
- PySide6 supports Qt 6
PySide version 1 was released in August 2009 under the LGPL by Nokia, then the owner of the Qt toolkit, after it failed to reach an agreement with PyQt developers Riverbank Computing 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, while the PySide community added support for Android.
PySide2 was started by Christian Tismer to port PySide from Qt 4 to Qt 5 in 2015. The project was then folded into the Qt Project. It was released in December 2018.
PySide6 was released in December 2020. It added support for Qt 6 and removed support for all Python versions older than 3.6.
The project started out using Boost. Python from the Boost C++ libraries for the bindings. It later created its own binding generator named Shiboken, to reduce the size of the binaries and the memory footprint.
Sign in to keep reading
One more chapter is free with a Lably account.
"Hello, world!" example
<span id="mwhA"></span><span class="kn" id="mwhQ">import</span><span class="w" id="mwhg"> </span><span class="nn" id="mwhw">sys</span> <span class="kn" id="mwiA">from</span><span class="w" id="mwiQ"> </span><span class="nn" id="mwig">PySide6</span><span class="w" id="mwiw"> </span><span class="kn" id="mwjA">import</span> <span class="n" id="mwjQ">QtCore</span><span class="p" id="mwjg">,</span> <span class="n" id="mwjw">QtWidgets</span> <span class="c1" id="mwkA"># Create a Qt application</span> <span class="n" id="mwkQ">app</span> <span class="o" id="mwkg">=</span> <span class="n" id="mwkw">QtWidgets</span><span class="o" id="mwlA">.</span><span class="n" id="mwlQ">QApplication</span><span class="p" id="mwlg">(</span><span class="n" id="mwlw">sys</span><span class="o" id="mwmA">.</span><span class="n" id="mwmQ">argv</span><span class="p" id="mwmg">)</span> <span class="c1" id="mwmw"># Create the main window</span> <span class="n" id="mwnA">main_window</span> <span class="o" id="mwnQ">=</span> <span class="n" id="mwng">QtWidgets</span><span class="o" id="mwnw">.</span><span class="n" id="mwoA">QWidget</span><span class="p" id="mwoQ">()</span> <span class="n" id="mwog">main_window</span><span class="o" id="mwow">.</span><span class="n" id="mwpA">resize</span><span class="p" id="mwpQ">(</span><span class="mi" id="mwpg">320</span><span class="p" id="mwpw">,</span> <span class="mi" id="mwqA">240</span><span class="p" id="mwqQ">)</span> <span class="n" id="mwqg">main_window</span><span class="o" id="mwqw">.</span><span class="n" id="mwrA">setWindowTitle</span><span class="p" id="mwrQ">(</span><span class="s1" id="mwrg">'"Hello, world!" example'</span><span class="p" id="mwrw">)</span> <span class="c1" id="mwsA"># Create a label for text in the main window</span> <span class="n" id="mwsQ">label</span> <span class="o" id="mwsg">=</span> <span class="n" id="mwsw">QtWidgets</span><span class="o" id="mwtA">.</span><span class="n" id="mwtQ">QLabel</span><span class="p" id="mwtg">(</span><span class="n" id="mwtw">main_window</span><span class="p" id="mwuA">)</span> <span class="n" id="mwuQ">label</span><span class="o" id="mwug">.</span><span class="n" id="mwuw">setText</span><span class="p" id="mwvA">(</span><span class="s2" id="mwvQ">"Hello, world!"</span><span class="p" id="mwvg">)</span> <span class="n" id="mwvw">label</span><span class="o" id="mwwA">.</span><span class="n" id="mwwQ">setGeometry</span><span class="p" id="mwwg">(</span><span class="n" id="mwww">QtCore</span><span class="o" id="mwxA">.</span><span class="n" id="mwxQ">QRect</span><span class="p" id="mwxg">(</span><span class="mi" id="mwxw">100</span><span class="p" id="mwyA">,</span> <span class="mi" id="mwyQ">100</span><span class="p" id="mwyg">,</span> <span class="mi" id="mwyw">100</span><span class="p" id="mwzA">,</span> <span class="mi" id="mwzQ">100</span><span class="p" id="mwzg">))</span> <span class="c1" id="mwzw"># Show the main window</span> <span class="n" id="mw0A">main_window</span><span class="o" id="mw0Q">.</span><span class="n" id="mw0g">show</span><span class="p" id="mw0w">()</span> <span class="c1" id="mw1A"># Enter the main loop and exit when done</span> <span class="n" id="mw1Q">sys</span><span class="o" id="mw1g">.</span><span class="n" id="mw1w">exit</span><span class="p" id="mw2A">(</span><span class="n" id="mw2Q">app</span><span class="o" id="mw2g">.</span><span class="n" id="mw2w">exec</span><span class="p" id="mw3A">())</span>

