Cross-platform software libraries and APIs
Qt Creator IDE and productivity tools
UI Design tool for UI composition
for Qt projects
Digital advertising for UI apps
Usage intelligence for embedded devices
GUI test automation
Code coverage analysis
Test results management and analysis
Software static code analysis
Software architecture verification
The latest version of Qt.
Make the most of Qt tools, with options for commercial licensing, subscriptions, or open-source.
Explore Qt features, the Framework essentials, modules, tools & add-ons.
The project offers PySide6 - the official Python bindings that enhance Python applications.
Qt empowers productivity across the entire product development lifecycle, from UI design and software development to quality assurance and deployment. Find the solution that best suits your needs.
Insight into the evolution and importance of user-centric trends and strategies.
Learn how to shorten development times, improve user experience, and deploy anywhere.
Get the latest resources, check out upcoming events, and see who’s innovating with Qt.
Stay informed about our live events and webinars, whether they're online, in person, or face-to-face.
Deep dive into the details, tech specs, and everything else you wish to know about Qt tools.
A wealth of Qt knowledge at your fingertips—discover your ideal learning resource or engage with the community.
Whether you're a beginner or a seasoned Qt pro, we have all the help and support you need to succeed.
9月 22, 2018 by 鈴木 佑 | Comments
この記事は The Qt Blog の Qt for Python: under the hood を翻訳したものです。
執筆: Cristián, 2018年05月24日
本日は、「Qt for Python バインディング」の生成プロセスについて紹介したいと思います。
以下の図は The Qt Company が PySide2 モジュールを提供する際の一般的なプロセスを示しています。
PySide プロジェクトが 2009 年に立ち上がった際に当時のチームは Qt の C++ のヘッダファイルから Python のバインディングを生成するのに外部のツールを使用することを決断しました。
すべての Qt の C++ の機能に対応できるという条件は当然として、最終的なパッケージの大きさに強い感心がありました。
以前のものはテンプレートを多用していたため、別のものが必要になりました。
いくつかの選択肢を検討した結果、そのチームは自分たちで Shiboken と呼ばれるジェネレーターを書くことにしました。
Shiboken は(QtScriptGenerator という昔のプロジェクトを元に作られた)ApiExtractor というライブラリを使用し、Clang を用いて Qt のヘッダファイルをパースして Qt のクラスの情報を取得します。
このステップは Qt に依存はしていないため、他の C++ のプロジェクトでも利用可能です。
さらに、Shiboken が持っている(XML 形式の) Typesystem を利用して、取得した情報を適切な表現に修正し、C++ のクラスを Python の世界で扱えるようにします。
この Typesystem ではクラスへのメソッドの追加や削除が可能で、各関数の引数の変更もできます。これは C++ と Python で競合が起こった際にデータ構造や型を適切に扱うために必要となる機能です。
この処理のアウトプットは CPython で書かれたラッパーのセットになり、これは簡単にコンパイルが可能で、それが最終的にみなさんのもとに PySide2 と呼ばれる Python のモジュールとして提供されています。
ApiExtractor と Shiboken の公式のドキュメントは Qt for Python のドキュメントに含む予定で、それを参考にしていただくことにより、Qt for Python 自体の開発に参加することも可能です。Shiboken の動作の詳細については別途記事を書く予定ですのでお楽しみに!
Download the latest release here: www.qt.io/download.
Qt 6.6. is a feature release with focus on improving UX capabilities including responsive UI technology and the Qt Graph module.
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.
11 6, 2023
本記事は「Qt for Python: all the details of the latest 6.6 release」の抄訳です。 Qt..
5 3, 2023
本稿は「Qt for Python: the new 6.5 version is out!」の抄訳です。 Qt..
Qt Group includes The Qt Company Oy and its global subsidiaries and affiliates.