パイソン | PyQt5 の概要
GUI アプリケーションを開発するために Python によって提供されるオプションは非常に多く、PyQt5 はその 1 つです。 PyQt5 はクロスプラットフォーム GUI ツールキットであり、Qt v5 用の Python バインディングのセットです。このライブラリが提供するツールとシンプルさのおかげで、対話型デスクトップ アプリケーションを非常に簡単に開発できます。 GUI アプリケーションはフロントエンドとバックエンドで構成されます。 PyQt5 は、開発を迅速化し、バックエンドの作業により多くの時間を費やすことができるように、ドラッグ アンド ドロップ方法でフロントエンドを設計するための「QtDesigner」と呼ばれるツールを提供しています。 インストール: まず、PyQt5 ライブラリをインストールする必要があります。このためには、ターミナルまたはコマンド プロンプトに次のコマンドを入力します。
pip install pyqt5
正常にインストールされたら、コードを実行して確認できます。
>>>PyQt5をインポート>>PyQt5 は多くのツールを提供しており、QtDesigner もその 1 つです。このためには、次のコマンドを実行します。
「ボタンのないダイアログ」オプションを選択し、「作成」をクリックします。 デザイナーの左側には、要件に応じてウィンドウにドラッグ アンド ドロップできるさまざまなウィジェットがあります。 「プッシュボタン」と「ラベル」を見つけてドラッグアンドドロップします。 ![]()
ウィジェット内のテキストを変更するには、ウィジェットを右クリックして「プレーンテキストの変更」を選択します。ラベルのテキストは空白のままにしておきます。 ![]()
フロントエンド レイアウトを作成しました。希望の場所に保存するだけです。このファイルの拡張子は .ui であることに注意してください。 ウィジェットの Python 形式を取得し、必要なイベント リスナーをウィジェットにアタッチするには、.ui ファイルを .py ファイルに変換する必要があります。 .ui ファイルを .py ファイルに変換します。
- このためには、ターミナルまたはコマンド プロンプトで sitepackages ディレクトリに移動し、以下に示すコマンドを実行する必要があります。 sitepackages の場所の取得については前述しました。
>>> cd C:Users……ProgramsPythonPython36-32libsite-packages [サイトパッケージの場所]>>> pyuic5 C:Users......FILENAME .ui[.ui ファイルの正確な場所] -o C:Users…….FILENAME.py [.py ファイルを配置する場所]
- 最後に、Python コードにシグナルとスロットを追加して、完全に機能するようにします。
widget.signal.connect(slot)
- あ 信号 クリックやダブルクリックなどの特定の種類のイベントの発生後にウィジェットによって発行されます。 スロット イベントの発生後に何らかのアクションを実行する呼び出し可能な関数です。
- アプリを実行してボタンをクリックします。
![]()
以下はコードです –
Python3
import>sys>from>PyQt5>import>QtCore, QtGui, QtWidgets>class>Ui_Dialog(>object>):>>def>setupUi(>self>, Dialog):>>Dialog.setObjectName('Dialog')>>Dialog.resize(>400>,>300>)>>self>.pushButton>=>QtWidgets.QPushButton(Dialog)>>self>.pushButton.setGeometry(QtCore.QRect(>150>,>70>,>93>,>28>))>>self>.label>=>QtWidgets.QLabel(Dialog)>>self>.label.setGeometry(QtCore.QRect(>130>,>149>,>151>,>31>))>>self>.label.setText('')>>self>.retranslateUi(Dialog)>>QtCore.QMetaObject.connectSlotsByName(Dialog)>>># adding signal and slot>>self>.pushButton.clicked.connect(>self>.showmsg)>>def>retranslateUi(>self>, Dialog):>>_translate>=>QtCore.QCoreApplication.translate>>Dialog.setWindowTitle(_translate('Dialog', 'Dialog'))>>self>.pushButton.setText(_translate('Dialog', 'Click'))>>>def>showmsg(>self>):>># slot>>self>.label.setText('You clicked me')>if>__name__>=>=>'__main__':>>app>=>QtWidgets.QApplication(sys.argv)>>MainWindow>=>QtWidgets.QMainWindow()>>ui>=>Ui_Dialog()>>ui.setupUi(MainWindow)>>MainWindow.show()>>sys.exit(app.exec_())>