tata色々な備忘録

データ解析、画像解析、化学分析などなど

PyQt(PySide)で画像処理その2(GUI動作設定の基本)

PyQt(PySide)で画像処理(その1) - tataboxの備忘録

前回の続き。

画像と重なるため、若干レイアウトを変更しました。

f:id:tatabox2000:20140901000714p:plain

というわけで、Qtで画像を開き、画像に合わせてフレームのサイズを変更するコードです。

前回作成したpyqt_Opencv.pyと同じフォルダに下記のファイルを入れます。

from PySideを PyQt4に書き換えることでPyQtでも動作します。

重要ポイントは下記の3つ
(1)前回生成したフォームの引き継ぎ

生成ファイルからUi_(+メインウィンドウ名)のクラスを
インポートすることで、フォームを引き継ぎます。

"""生成されたフォームのファイルからフォームをインポート"""
from pyqt_Opencv import Ui_Qt_CV_MainWindow
(2)シグナル&スロット

シグナル&スロット(実行関数)には幾つかの表記法がありますが、今回は以下の書式です。 QtCore.QObject.connect(操作オブジェクト名,QtCore.SIGNAL("シグナル名"),実行する関数名)

"""シグナル&スロット:file_buttonをクリックすると、open_file関数を実行"""
    QtCore.QObject.connect(self.file_button, QtCore.SIGNAL("clicked()"), self.open_file)
(3)おまじない1、2

意味は以下の通りです。クラス名は任意。
1)インポートしたフォームを取り込んで初期化
2)クラスの実行

実行結果(例)

1)Fileボタンを押し、画像ファイルを選択
2)画像とアドレスが表示され、画像に合わせて全体がリサイズ
f:id:tatabox2000:20140901003248p:plain

次はOpencvとの連携について書きます。

続きます(気力があれば)