Qt for Python: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(Grammar fixes)
(4 intermediate revisions by one other user not shown)
Line 3: Line 3:
http://doc-snapshots.qt.io/qtforpython/_static/pysidelogo.png
http://doc-snapshots.qt.io/qtforpython/_static/pysidelogo.png
== Qt for Python ==
== Qt for Python ==
The '''Qt for Python''' project aims to provide a complete port of the [[PySide]] module to Qt 5. The development started on [https://github.com/PySide GitHub] in May 2015. The project managed to port Pyside to Qt 5.3, 5.
The '''[https://www.qt.io/qt-for-python Qt for Python]''' project aims to provide a complete port of the [[PySide]] module to Qt 5. The development started on [https://github.com/PySide GitHub] in May 2015. The project managed to port Pyside to Qt 5.3, 5.
4 & 5.5. During April 2016 The Qt Company decided to properly support the port (see [https://groups.google.com/forum/#!topic/pyside-dev/pqwzngAGLWE details] ).
4 & 5.5. During April 2016 The Qt Company decided to properly support the port (see [https://groups.google.com/forum/#!topic/pyside-dev/pqwzngAGLWE details] ).
The module was released mid June as a Technical Preview (supporting Qt 5.11).


This wiki page tracks the progress of the '''Qt for Python''' project development and provides further information concerning the effort.
This wiki page tracks the progress of the '''Qt for Python''' project development and provides further information concerning the effort.


'''Qt for Python''' will be available under GPL, LGPL and commercial license.
'''Qt for Python''' is available under GPL, LGPL and commercial license.


== Getting Started ==
== Getting Started ==
Line 15: Line 17:
* [[Qt_for_Python/Tutorial|Tutorials]]
* [[Qt_for_Python/Tutorial|Tutorials]]
* [[Qt_for_Python/Development_Getting_Started|Development: Getting started]]
* [[Qt_for_Python/Development_Getting_Started|Development: Getting started]]
* [[Qt_for_Python/Considerations| Considerations and known issues]]
* [[Qt_for_Python/Reporting_Bugs|Reporting Bugs]] to report any issue.
* [[Qt_for_Python/Reporting_Bugs|Reporting Bugs]] to report any issue.
* [https://codereview.qt-project.org CodeReview] and [https://codereview.qt-project.org/#/q/project:%255Epyside.%252B,n,z PySide2 open patches]  
* [https://codereview.qt-project.org CodeReview] and [https://codereview.qt-project.org/#/q/project:%255Epyside.%252B,n,z PySide2 open patches]  
* Git repository (5.9 branch is the branch currently worked on for PySide2)
* Git repository (5.11 branch is the branch currently worked on for PySide2)
** ssh://codereview.qt-project.org/pyside/pyside-setup
** ssh://codereview.qt-project.org/pyside/pyside-setup


== How does '''Qt for Python''' look like? ==  
== What does '''Qt for Python''' look like? ==  


<syntaxhighlight lang="python" line='line'>
<syntaxhighlight lang="python" line="line">
import sys
import sys
from PySide2.QtWidgets import QApplication, QLabel
from PySide2.QtWidgets import QApplication, QLabel
                                                      
                                                      
if __name__ == "__main__":
if __name__ == "__main__":
     app = QApplication([])
     app = QApplication(sys.argv)
     label = QLabel("Hello World")
     label = QLabel("Hello World")
     label.show()
     label.show()
Line 35: Line 36:


More examples can be found in the [http://code.qt.io/cgit/pyside/pyside-setup.git/tree/examples project's repository] inside the '''examples''' directory.
More examples can be found in the [http://code.qt.io/cgit/pyside/pyside-setup.git/tree/examples project's repository] inside the '''examples''' directory.
== Community ==
== Community ==


Line 43: Line 45:
** [https://keybase.io/team/pyside keybase.io/team/theqtcompany] (subteam ''theqtcompany.pyside'')
** [https://keybase.io/team/pyside keybase.io/team/theqtcompany] (subteam ''theqtcompany.pyside'')
* Gitter: [http://gitter.im/PySide/pyside2 gitter.im/PySide/pyside2]
* Gitter: [http://gitter.im/PySide/pyside2 gitter.im/PySide/pyside2]
* [[Qt_for_Python/Suggestions|Have an idea? share it with us!]]


== Development Status ==
== Development Status ==
Line 79: Line 82:
** A: The name of the project is '''Qt for Python''' and the name of the module is '''PySide2'''.
** A: The name of the project is '''Qt for Python''' and the name of the module is '''PySide2'''.
* Q: Why PySide2 and not just PySide?
* Q: Why PySide2 and not just PySide?
** A: Since PySide was developed for Qt4, when the port was made to support Qt5, the name was changed to PySide2 to infer that is was a newer version.
** A: Since PySide was developed for Qt4, when the port was made to support Qt5, the name was changed to PySide2 to imply that it was a newer version.
* Q: Where I can find information about the old PySide project?
* Q: Where I can find information about the old PySide project?
** A: The old wiki page of the project is available on [[PySide]], '''but''' the project is deprecated and there is no official support for it. We highly recommend not to use it.
** A: The old wiki page of the project is available on [[PySide]], '''but''' the project is deprecated and there is no official support for it. We highly recommend not to use it.
* Q: My project is using PySide, how hard would it be to adapt it to PySide2?
* Q: My project is using PySide, how hard would it be to adapt it to PySide2?
** A: The changes are the same as between [https://doc.qt.io/qt-5/qt5-intro.html Qt4 and Qt5], and for PySide users it mostly means adapting the ''import'' statements since many classes were moved from QtGui to QtWidgets.
** A: The changes are the same as between [https://doc.qt.io/qt-5/qt5-intro.html Qt4 and Qt5], and for PySide users it mostly means adapting the ''import'' statements since many classes were moved from QtGui to QtWidgets.
::''Qt 5 is highly compatible with Qt 4. It is possible for developers of Qt 4 applications to seamlessly move to Qt 5 with their current functionality and gradually develop new things, leveraging all the great items Qt 5 makes possible.
::''Qt 5 is highly compatible with Qt 4. It is possible for developers of Qt 4 applications to seamlessly move to Qt 5 with their current functionality and gradually develop new things, leveraging all the great items Qt 5 makes possible.''
''
 
== Known issues ==
 
* [[Qt_for_Python/Considerations| Considerations and known issues]]


== Contributing to the Qt for Python Wiki ==
== Contributing to the Qt for Python Wiki ==

Revision as of 20:37, 22 July 2018

En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh

pysidelogo.png

Qt for Python

The Qt for Python project aims to provide a complete port of the PySide module to Qt 5. The development started on GitHub in May 2015. The project managed to port Pyside to Qt 5.3, 5. 4 & 5.5. During April 2016 The Qt Company decided to properly support the port (see details ).

The module was released mid June as a Technical Preview (supporting Qt 5.11).

This wiki page tracks the progress of the Qt for Python project development and provides further information concerning the effort.

Qt for Python is available under GPL, LGPL and commercial license.

Getting Started

What does Qt for Python look like?

import sys
from PySide2.QtWidgets import QApplication, QLabel
                                                     
if __name__ == "__main__":
    app = QApplication(sys.argv)
    label = QLabel("Hello World")
    label.show()
    sys.exit(app.exec_())

More examples can be found in the project's repository inside the examples directory.

Community

Development Status

Weekly development progress

The summary of the development progress can be found in Development Notes by date

Pyside Development Progress Notes

The most current view of the progress can be found in Jira:

  1. Unresolved issues
  2. All issues (including resolved)

The second link is useful to monitor the progress of the backlog. The best way to achieve this is to sort the list by the "Updated" column. Larger backlog/feature items are filed as "User Stories" in Jira.

Missing PySide2 bindings

The list of the current missing bindings can be found in Missing PySide2 bindings

Outstanding tasks for release

  1. Determine PySide2 package number
  2. Ensure multi target packages can be created (long standing - reduced Python API usage )
  3. General Doc changes required for release
    1. Getting started
    2. Some examples documented
    3. pyinstaller usage
    4. Class documentation polish
    5. snapshot generation on http://doc-snapshot.qt-project.org/

Frequently Asked Questions

  • Q: PySide? Qt for Python? what is the name?
    • A: The name of the project is Qt for Python and the name of the module is PySide2.
  • Q: Why PySide2 and not just PySide?
    • A: Since PySide was developed for Qt4, when the port was made to support Qt5, the name was changed to PySide2 to imply that it was a newer version.
  • Q: Where I can find information about the old PySide project?
    • A: The old wiki page of the project is available on PySide, but the project is deprecated and there is no official support for it. We highly recommend not to use it.
  • Q: My project is using PySide, how hard would it be to adapt it to PySide2?
    • A: The changes are the same as between Qt4 and Qt5, and for PySide users it mostly means adapting the import statements since many classes were moved from QtGui to QtWidgets.
Qt 5 is highly compatible with Qt 4. It is possible for developers of Qt 4 applications to seamlessly move to Qt 5 with their current functionality and gradually develop new things, leveraging all the great items Qt 5 makes possible.

Known issues

Contributing to the Qt for Python Wiki

This Wiki is a community area where you can easily contribute, and which may contain rapidly changing information. Please put any wiki pages related to Qt for Python into the "QtForPython" category by adding the following text to the top of the page:

[[Category:Qt for Python]]

When creating a new wiki page, please start the name with the prefix "Qt_for_Python/", so all the wiki page names will have the same structure and breadcrumbs are generated for easier navigation.