PyQt5チュートリアルを探しています。チュートリアルなしで初めてPythonでGUI開発を開始するのはかなり複雑です。
これまでにいくつかのPyQt4チュートリアルのみを見つけましたが、Qt4からQt5に何かが変更されたため、たとえばSIGNAL
とSLOT
はQt5ではサポートされなくなりました。 PyQt5の場合。
誰かがPyQt5でGUI開発を開始する方法に関するチュートリアルを提供できますか?
私のPyQt5の深部への旅が続くので、私が見つけたより輝く宝物のいくつかでこの答えを更新し続けなければなりません。
そうは言っても、私は今、PyQt5の簡単なイントロで「ラフドラフト」刺しを取っています。役立つリソースへのリンクも提供します。私もこのフレームワークに慣れていないので、この戦略を理解する上で、このフレームワークを使用するのに適した戦略であると思われるものについて詳しく説明します。他にも良い戦略がある可能性が高いので、追加するものがあれば、コメントを残してください。これは非常に進行中の作業です。
他の回答で示唆されているように、サンプルコードから多くを学びましたが、サンプルが役に立たないのはPyQt5の深い魔法です。たくさんの魔法を備えたフレームワーク(PyQt5、Django、SQLAlchemyなど)は、膨大な量の骨の折れる作業があなたから引き離されるので素晴らしいです。反対に、地獄が何をしているのか、またはあなたがそれに対して何をすべきなのかは必ずしも明確ではありません。
幸いなことに、オプションがあるようです。
QtDesigner :キーボードが発火する日には、インストールパッケージで呼び出されるGUIビルダーがあります。これが生成するコードを見ると(おそらくコミュニティバージョンだけですか?)、なぜmayが万能薬ではないのかがわかります。
[〜#〜] qml [〜#〜] :別の万能薬の候補:フォーマット済みJSONからの宣言型GUI構築。うん.
Qt Quick :QMLのフレームワーク。この時点で、それは食欲をそそるほど簡単に思えるかもしれませんが、このようなものにまだ吸い込まれないでください。 それは常に手で学習することになりそうです。
モデルビューフレームワーク(1) :Model-View(MVCではない)は、モジュール性を提供する目的で、データを管理するコードからプレゼンテーション/相互作用を扱うコードを分離します。
Model-View design patternを実装するクラスのセットを使用することで、PyQt5のコーディングが大幅に簡素化されます。 Model-ViewはModel-View-Controller(MVC)の進化版であり、Controllerはビューと再結合されています。奇妙な仲間のように見えますが、プログラムのロジックのほとんどisはユーザーまたはデータのいずれかを処理します。少なくとも成層圏レベルでは、ある程度の意味があるようです。
鳥瞰図から:
Model-View-Controller
この広く使用されている設計パターンは、アプリケーションを3つの層に分割します。
Model-View
この設計パターンにより、コントローラーがビュー内に配置されます。このようにして、ビューはユーザーの操作全体を処理できます。具体的には、これらはシグナルとスロットのメカニズムです。
コールバック
信号とスロット
..... **申し訳ありませんが、今すぐサインオフする必要があります。これに追加し続けます。 **
たとえば、itemviews/editabletreemodel
の例からツリービューを取得し、itemviews/dirview
の例からファイルシステムモデル(QFileSystemModel
)にスワップすると、完全なディレクトリツリーの(作業中の)ビュー。かなりおしゃれ。
したがって、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++とは対照的に)、私は非常に迅速に多くのことを学びました。
私はグラフィックスビューで遊び始めたばかりで、 グラフィックスビューフレームワークに関するこのチュートリアル とても役に立ちました。これは、いくつかの滑らかな効果を生成するためにqtdemo
サンプルコードで使用されるビューと同じです。これを少し更新します。
Katshが別の回答のコメントで指摘したように、 GitHubのPyQt5.2.1のサンプルコードへのリンクです
さらに、サンプルコードのコピーがディストリビューションにパッケージされており、次の場所にあります。
%PYTHON_HOME%\Lib\site-packages\PyQt5\examples
PyDev(Eclipse)を使用している場合、PyDevパッケージエクスプローラーまたはナビゲーターでサンプルのメインモジュールファイルを右クリックするだけでサンプルを実行できます==> Run As =:> Python Run
私の(それほどではない)謙虚な意見では、最高のものは:
%PYTHON_HOME%\Lib\site-packages\PyQt5\examples\qtdemo\qtdemo.py
現在のプロジェクトの中で、私はこの例をリバースエンジニアリングしているところです。確認すると、その理由がわかります。つづく.. ;)
楽しい!
しばらくPyQt5のチュートリアルをお探しですか?これ以上探さない!あなたはインターネットの周りに多くを見つけることはありません。
本当にチュートリアルではありませんが、次のパスでかなり一目瞭然の基本的なスクリプト:
/ python/lib/site-packages/PyQt5/examples
100
の例30
初心者から上級者までのフォルダー。基本的なウィンドウ、メニュー、タブ、レイアウト、ネットワーク、OpenGLなどをカバーしています。
http://www.thehackeruniversity.com/2014/01/23/pyqt5-beginner-tutorial/ これは初心者向けのチュートリアルです