import sys from PyQt5.QtWidgets import QApplication from PyQt5.QtWidgets import QLabel if __name__ == '__main__': app = QApplication(sys.argv) label = QLabel('Hello Qt5!') label.show() sys.exit(app.exec_())
3~4行目でQApplicationとQLabelをインポートしていますが、どうやらQt4とQt5はパッケージの構成が異なるようです。
7行目、QApplicationをインスタンス化します。
ここでは、コマンドライン引数が必要になるため、パラメータとして sys.argv を指定します。
9行目、QLabel をインスタンス化します。
QLabel は、テキストまたはイメージの表示を行うウィジェットです。
Qtではユーザが操作するユーザインターフェース要素のことをウィジェットと言うんだそうです。
(Unixもそうらしいです、勉強になりますね♪)
QLabelをインスタンス化する際のパラメータとして’Hello Qt5!’を指定しています。
これが表示する文字列ですね。
10行目、ここでラベルを表示状態にします。
Qtではウィジェットは常に非表示の状態で生成されるので、インスタンス化が終わったら表示させます。
12行目、制御をQtに渡します。
これによってアプリはイベントループに入り、ユーザからの操作を待つということですね。
ウィジェットは単体でもウィンドウとして機能するようで、今回のようにラベルだけをウィンドウとしてアプリ実行することができます。
なんて便利なんでしょう♪
上のサンプルでは、QLabelのインスタンス化時に’Hello Qt5!’という文字列を指定していますが、HTMLも指定可能だそうです。
label = QLabel('<h2><i>Hello</i> <span style="color: red;">Qt5!</span></h2>')
画像も出力させるには以下のようになります。
import sys from PyQt5.QtWidgets import QApplication from PyQt5.QtWidgets import QLabel from PyQt5.QtGui import QPixmap if __name__ == '__main__': app = QApplication(sys.argv) label = QLabel() label.setPixmap(QPixmap("[画像ファイルパス]")) label.show() sys.exit(app.exec_())
QLabelウィジェットを引数なしでインスタンス化し、setPixmapメソッドで画像データを指定することで可能になります。
GUIがお手軽にできていいですね♪