カテゴリー
D-Studio プログラム

PyQT・Plot表示

PythonでPyQtを使ったGUI開発。

Plot画面の表示について簡潔にまとめておきます。

class ScanGUI(QWidget):
~
    def initUI(self):

        # グラフ領域
        self.pw = PlotWidget(self)
        # グラフのデータ設定(初期値)
        self.vol_array = np.zeros(10)
        self.cnt_array = np.zeros(10)
        # pyqtgraphにPlot種類とデータを追加
        self.item = pyqtgraph.PlotCurveItem(x=self.cnt_array, y=self.vol_array)
        self.pw.addItem(self.item)
~

ここまではググったらいくらでも出てくるので簡単にグラフ表示はできると思います。今回はグラフをリアルタイムに更新したいのです!

self.pw.addItem(self.item)を繰り返すと?グラフが上書きされます。グチャグチャになります。

            # グラフ更新
            self.item.updateData(x=self.cnt_array, y=self.vol_array)

更新時はこれだけ。updateDataを使います。これでグラフは更新されます。

Plotの基本についてはこちらとか参照。

Pythonの記事も結構ありますので興味ある方はぜひ!

カテゴリー
D-Studio プログラム

pyQtでGUI上画像表示

PythonのGUI開発においての覚書

GUIで画像表示を行う場合のあれこれ

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

from PyQt5.QtWidgets import QMainWindow, QLabel


class ImgView(QMainWindow):

	def __init__(self):
		super().__init__()
		self.initUI()

	def initUI(self):
		# 画像表示領域 ラベルを作ってその中に画像を置く
		self.lbl_image = QLabel(self)
		self.lbl_image.move(pos_x, pos_y)
		self.lbl_image.setFixedWidth(width)
		self.lbl_image.setFixedHeight(height)

        def viewevent(self):
                #Pixmapフォーマットの画像を表示させる
                self.lbl_image.setPixmap(pix)
</code></pre>
<!-- /wp:code -->

[解説]

・表示部分はQLabelを利用

・表示させるのはPixmapの画像

要はPixmapファイルが作れれば結構簡単に画像表示できます!

なのでpillowで取得した画像データをpixmapへ変換する場合は下記の様に。

from PyQt5 import QtGui

from PIL import Image, ImageOps    

def change_pil_to_pixmap(self, pilimg):
        rgb_im = pilimg.convert('RGBA')
        data = rgb_im.tobytes("raw", "RGBA")
        qim = QtGui.QImage(data, rgb_im.size[0], rgb_im.size[1], QtGui.QImage.Format_ARGB32)
        pix_img = QtGui.QPixmap.fromImage(qim)
        return pix_img

画像データ取得については下記参考

 外部リンク

pillowのフォーマットで色々画像処理できます。

  • 開発紹介

    ソフトウェア開発でお手伝いさせていただいた案件が論文に! http://www.spring8.or.jp/j…


  • スキャンプログラム

    今回研究施設向けのスキャンプログラムの作成を行いました。 こちら新しい技術の導入があり、その技術利用しながら作…


  • TIFヘッダ編集

    久しぶりの投稿はPythonプログラム! D-Studioでは現在Pythonをメインに仕事してます! 研究施…