PyQt5 チュートリアルを探しています。チュートリアルなしで初めて Python で GUI 開発を始めるのはかなり複雑です。
これまでのところ、いくつかの PyQt4 チュートリアルしか見つかりませんでした。たとえば、Qt4 から Qt5 に何かが変更され、SIGNAL
Qt5SLOT
ではサポートされなくなったため、PyQt5 用の特定のチュートリアルがあると便利です。
PyQt5 で GUI 開発を開始する方法について、誰かがチュートリアルを提供してもらえますか?
PyQt5 チュートリアルを探しています。チュートリアルなしで初めて Python で GUI 開発を始めるのはかなり複雑です。
これまでのところ、いくつかの PyQt4 チュートリアルしか見つかりませんでした。たとえば、Qt4 から Qt5 に何かが変更され、SIGNAL
Qt5SLOT
ではサポートされなくなったため、PyQt5 用の特定のチュートリアルがあると便利です。
PyQt5 で GUI 開発を開始する方法について、誰かがチュートリアルを提供してもらえますか?
PyQt5 の深みへの旅が続くので、私が見つけた輝かしい宝物のいくつかでこの回答を更新し続けます。
そうは言っても、私は今、PyQt5 の簡単な紹介で「ラフ ドラフト」を突き刺しています。また、役立つリソースへのリンクも提供します。私もこのフレームワークは初めてなので、その戦略を理解するにつれて、それを使用するための良い戦略であると私が信じるものについて詳しく説明します。他にも良い戦略があると思われるので、誰か追加するものがあればコメントを残してください. これは非常に進行中の作業です。
他の回答で提案されているように、サンプルコードから多くのことを学びましたが、サンプルが役に立たないのは PyQt5 の深い魔法です。多くの魔法を備えたフレームワーク (PyQt5、Django、SQLAlchemy など) は、膨大な量の単調な作業が抽象化されるため、優れています。反対に、一体何が起こっているのか、それに対して何をすべきなのかが常に明確であるとは限りません。
幸いなことに、オプションがあるようです。
QtDesigner : キーボードが発火した日のために、インストール パッケージで呼び出されるロックな GUI ビルダーがあります。これが生成するコードを見ると (おそらくコミュニティ バージョンだけでしょうか?)、これが万能薬ではない理由がわかります。
QML : 万能薬のもう 1 つの候補: フォーマットされた JSON からの宣言型 GUI 構築。うーん。
Qt Quick : QML のフレームワーク。この時点で、とても簡単に思えるかもしれませんが、まだこのようなことに夢中にならないでください。それは常に手で学ぶことになるようです。
モデル ビュー フレームワーク(1) : モデル ビュー (MVC ではない) は、モジュール性を提供する目的で、データを管理するコードからプレゼンテーション/相互作用を扱うコードを分離します。
PyQt5 でのコーディングは、Model-View デザイン パターンを実装する一連のクラスを使用することで大幅に簡素化されます。Model-View は Model-View-Controller (MVC) の進化形であり、Controller が View と再統合されています。彼らは奇妙な仲間のように見えますが、プログラムのロジックのほとんどは、ユーザーまたはデータのいずれかを扱っています。少なくとも成層圏レベルでは、一定の意味があるようです。
鳥の目から:
モデル ビュー コントローラー
この広く使用されている設計パターンは、アプリケーションを 3 つのレイヤーに分割します。
モデルビュー
この設計パターンは、コントローラーをビュー内に配置します。このようにして、ビューはユーザーの対話全体を処理できます。具体的には、シグナルとスロットのメカニズムです。
コールバック
シグナルとスロット
..... ** 申し訳ありませんが、今すぐサインオフする必要があります。これに追加し続けるために戻ってきます。**
たとえば、例からツリー ビューを取得し、例からitemviews/editabletreemodel
ファイル システム モデル ( QFileSystemModel
) を交換するitemviews/dirview
と、ディレクトリ ツリーの完全な (作業中の) ビューが得られます。かなりおしゃれ。
したがって、editabletreemodel の例からコードを取得します。
headers = ("Title", "Description")
file = QFile(':/default.txt')
file.open(QIODevice.ReadOnly)
model = TreeModel(headers, file.readAll())
file.close()
self.view.setModel(model)
...そして、dirview からモデルをスワップします。
model = QFileSystemModel()
model.setRootPath('')
self.view.setModel(model)
...そしてそれはうまくいきます。すばらしい。
次のステップ (私の場合) (*だと思います) は、カスタム モデルを実装して、複数のビューを同時に使用することですが、それがあなたのユース ケースに適合するかどうかはわかりません。
旅先で見つけた逸品をご紹介します。うまくいけば、彼らはあなたを助けてくれます。
これは、Qt5 の Model-View に関するチュートリアルです。(1)これは、Qt5 の公式ドキュメントからの非常に詳細なドキュメントです。Qt5 サイトには、役立つドキュメントが多数あります。これはQt5(C++ライブラリ)用ですが、違いは読み通すのは簡単です(とにかくPyQt5の公式ドキュメントはそこを指しています)。
この PDF には、PyQt4 の Model-View フレームワークの概要が含まれています。これは PyQt4 (PyQt5 ではありません) 用ですが、実際には Python (C++ ではなく) 用であり、すぐに多くのことを学べました。
Graphics View を使い始めたばかりで、Graphics View Framework に関するこのチュートリアルが非常に役立つことがわかりました。qtdemo
これは、いくつかの洗練された効果を生成するためにサンプル コードで使用されているのと同じビューです。これを少し更新します。
katsh が別の回答のコメントで指摘したように、GitHub の PyQt5.2.1 のサンプル コードへのリンクを次に示します。
さらに、サンプル コードのコピーがディストリビューションに同梱されており、次の場所にあります。
%PYTHON_HOME%\Lib\site-packages\PyQt5\examples
PyDev (Eclipse) を使用している場合は、PyDev Package Explorer または Navigator =:> Run As =:> Python Run でサンプルのメイン モジュール ファイルを右クリックするだけで、サンプルを実行できます。
私の(そうではない)謙虚な意見では、最高のものは次のとおりです。
%PYTHON_HOME%\Lib\site-packages\PyQt5\examples\qtdemo\qtdemo.py
現在のプロジェクトの中で、この例のリバース エンジニアリングを行っています。その理由は、調べてみればわかります。つづく.. ;)
楽しみ!
しばらく PyQt5 チュートリアルを探していましたか? これ以上探さない!あなたはインターネットの周りで多くを見つけることができません.
チュートリアルではありませんが、次のパスの下にわかりやすい基本的なスクリプトがあります。
/python/lib/site-packages/PyQt5/examples
基本的なウィンドウ、メニュー、タブ、レイアウト、ネットワーク、OpenGL などをカバーする、初心者から上級者まで100
のフォルダーの例について説明します。30
http://www.thehackeruniversity.com/2014/01/23/pyqt5-beginner-tutorial/をご覧ください。これは初心者向けのチュートリアルです。