大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

ラズパイデスクトップでPyQt5入門(1)

著者:國松亜紗子
公開日:2019/08/06
最終更新日:2019/08/06
カテゴリー:技術情報

こんばんは。國松です。
今回はVMWare入れたRaspberyyPidesktop でPyQt5を使って簡単なGUIを作って行こうと思います。本当に簡単なものです。

PyQtとは
クロスプラットフォームGUIツールキットであるQtPythonバインディングにして、PythonでGUIプログラミングをするときの選択肢の一つ(wikiからの抜粋)です。

今回はPyQt5をインストールしていきます。PyQt4ではないので注意してください。PyQt5はPyQt4と下位互換性がありません。
PyQt5のインストール

sudo apt-get install python3-pyqt5

以下のサイトのPyQt5チュートリアルを順番にやっていこう思います。
ZetCode PyQt5 tutorial

まずはシンプルなWindowを表示して行きます。
1.Simple_Example

#!/usr/bin/python3
#coding: utf-8
 
import sys
from PyQt5.QtWidgets import QApplication, QWidget
 
if __name__ == '__main__':
     				
    app = QApplication(sys.argv) #必ず作らなくてはいけないオブジェクト

    w = QWidget()   #ウィジェットオブジェクト作成(画面のこと)
    w.resize(250, 150)  #画面のサイズを(横250,高さ150に)設定
    w.move(300,300)     #画面をx=300,y=300の位置に移動
    w.setWindowTitle('Simple')  #タイトルを設定
    w.show()    # 画面を表示
 
    sys.exit(app.exec_())   #プログラムをクリーンに終了する

app = QApplication(sys.argv)
すべてのPyQt 5アプリケーションはアプリケーションオブジェクトを作成しなければなりません。 sys.argvパラメータは、コマンドラインからの引数のリストです。
w = QWidget()
QWidgetウィジェットはPyQt 5のすべてのユーザーインターフェースオブジェクトの基底クラスです。
w.show()
show()メソッドはウィジェットを画面に表示します。ウィジェットは、最初にメモリ内に作成され、後で画面に表示されます。

画像ではターミナルと重なってしまって見にくいですが、シンプルなWindowが表示されればOKです。

2.An application icon
次はwindowのタイトルバーの左上にアイコンを表示していきたいと思います。
アイコンに使用する画像は作成するプログラムと同じディレクトリに入れておいて下さい。

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon


class Example(QWidget):
    #コンストラクタ
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):
        #setGeometry(x,y,横幅,高さ)
        self.setGeometry(300, 300, 300, 220)
       #タイトルの設定
        self.setWindowTitle('Icon')
       #タイトルバーの左上にアイコンを設定
        self.setWindowIcon(QIcon('web.png'))        
      #画面を表示
        self.show()
        
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_()) 

画像を見てお分かりの通り表示されたWindowのタイトルバーにはアイコンがありません。LXTerminalの仕様なのか 原因を色々調べたのですがよくわかりませんでした。
あきらめかけたのその時、画面の上の方に並んだタブの一つ、今作成したiconのタブの左隅に桃のアイコン(桃です。お尻ではありません)がキチンと表示されているを発見しました。「あ、そんなころに…」という感じでした。

アイコンを探して少し疲れたので今回はここまでにしたいと思います。

 

    上に戻る