Python

[Python/PyQt5] ウィンドウを表示してみよう!

PyQt5は、C++で開発されているQtをPythonから利用できるようにしたフレームワークです。

本記事では、PyQt5のインストール方法やPyQt5を使用する入門としてウィンドウの表示方法を解説しています。

PyQt5を導入しよう

まずは、初めにPyQt5をインストールしていきましょう!

WindowsのコマンドプロンプトあるいはMacのターミナルで、pipを用いて「SIP」と「PyQt5」のインストールを行います。
以下のコマンドを実行してください!

pip install SIP
pip install PyQt5

SIPC及びC++言語をPythonで利用できるようにするツールのこと

PyQtでウィンドウを表示する

メインプログラム

では実際にPyQt5を用いてメインウィンドウを作成してみましょう。

ウィンドウを表示させるためのプログラムを以下に示します。

import sys
from PyQt5 import QtWidgets

def main():
    app = QtWidgets.QApplication(sys.argv)
    mainwindow = QtWidgets.QWidget()
    mainwindow.setWindowTitle('PyQt5 Window')
    mainwindow.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

(実行結果)

pyQt-window

上記プログラムが、PyQt5を用いてGUIを作成する上での基礎となります。

プログラムの解説

PyQt5を用いてGUIを構築するためには、sysとQtWidgetsをインポートします。

import sys
from PyQt5 import QtWidgets
  • sys:systemパラメータを利用できるようにするライブラリ
  • QtWidgets:PyQtでGUIを作成するためのモジュール

次に、ウィンドウを作成します。まず、イベントループと繋ぐためのアプリケーションオブジェクトを作成します。PyQtを用いているGUIアプリケーションには、必ずQApplicationオブジェクトが必要となります

QApplication()では、コンストラクタに引数を渡す必要があるため、コマンドライン引数であるsys.argvを設定します。

その後、メインウィンドウを作成します。

    app = QtWidgets.QApplication(sys.argv) #オブジェクトの作成
    mainwindow = QtWidgets.QWidget() #windowの作成
  • コンストラクタ:オブジェクトが実行された際に、自動的に実行されるメソッドのこと
  • コマンドライン引数:コンピュータのコマンド入力画面からプログラムを起動する際に引き渡す文字列のこと

setWindowTitleでは、ウィンドウのタイトルを指定します。

mainwindow.show()は、ウィンドウを画面上に表示させるためのステートメントです。

最後にsys.exit(app.exec_())は、イベントループを開始させて、そのループを維持させるために必要です。これを定義しない場合には、ウィンドウが一瞬で消えてしまいます

  mainwindow.setWindowTitle(”PyQt5 Window”) #タイトルの指定
  mainwindow.show() #ループの実行
  sys.exit(app.exec_()) #ループの維持

PyQt5でウィンドウサイズを変更する方法

PyQt5でウィンドウサイズを変更したい場合には、setGeometry()メソッドを使用します。

インスタンス名.setGeometry ( x座標 , y座標 , ウィンドウ幅 , ウィンドウ高さ )

第一引数と第二引数で指定する点の座標は、ウィンドウの左上の端点座標を示します。

実際に使用してみると以下のようになります。

import sys
from PyQt5 import QtWidgets

def main():
    app = QtWidgets.QApplication(sys.argv)
    mainwindow = QtWidgets.QWidget()
    mainwindow.setGeometry ( 100 , 100 , 400 , 200 ) 
    mainwindow.setWindowTitle('PyQt5 Window')
    mainwindow.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

以上となります。最後まで見ていただきありがとうございました!

tkinterを用いてウィンドウを表示する方法も解説していますので是非参考にしてみて下さい!

参考:tkinterでウィンドウを表示させる方法