環境
Windows 10 Pro(CPU only)
Python 3.7.5
まずは最小画面の描画
PyQt5==5.13.2
PyQt5-sip==12.7.0
import sys
from PyQt5 import QtCore
from PyQt5.QtWidgets import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("pyQt5 sample")
self.setGeometry(50, 50, 660, 660)
self.button1 = QPushButton('Open Img', self)
self.button1.setGeometry(QtCore.QRect(20, 20, 100, 30))
self.img_label1 = QLabel(self)
self.img_label1.setGeometry(QtCore.QRect(74, 120, 512, 512))
self.img_label1.setFrameStyle(QFrame.Box | QFrame.Plain)
if __name__ == "__main__":
app = QApplication(sys.argv)
ex =Window()
ex.show()
sys.exit(app.exec_())

つぎにボタンを押したときの動作を定義する(画像表示)
- ボタンを押すとファイル選択画面が開く
- ファイルを選択すると画面に表示する
from PyQt5.QtGui import QImage, QPixmap
self.button1.clicked.connect(self.showDialog1)
def showDialog1(self):
fname = QFileDialog.getOpenFileName(self, 'Open file')
if fname[0]:
image = QImage(fname[0]).scaled(512,512,QtCore.Qt.KeepAspectRatio)
self.img_label1.setPixmap(QPixmap.fromImage(image))
import sys
from PyQt5 import QtCore
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QImage, QPixmap
class Window(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("pyQt5 sample")
self.setGeometry(50, 50, 660, 660)
self.button1 = QPushButton('Open Img', self)
self.button1.setGeometry(QtCore.QRect(20, 20, 100, 30))
self.img_label1 = QLabel(self)
self.img_label1.setGeometry(QtCore.QRect(74, 120, 512, 512))
self.img_label1.setFrameStyle(QFrame.Box | QFrame.Plain)
self.button1.clicked.connect(self.showDialog1)
def showDialog1(self):
fname = QFileDialog.getOpenFileName(self, 'Open file')
if fname[0]:
image = QImage(fname[0]).scaled(512,512,QtCore.Qt.KeepAspectRatio)
self.img_label1.setPixmap(QPixmap.fromImage(image))
if __name__ == "__main__":
app = QApplication(sys.argv)
ex =Window()
ex.show()
sys.exit(app.exec_())
matplotlibのグラフを表示させる
cycler==0.10.0
kiwisolver==1.1.0
matplotlib==3.1.1
numpy==1.17.4
pyparsing==2.4.5
PyQt5==5.13.2
PyQt5-sip==12.7.0
python-dateutil==2.8.1
six==1.13.0
import sys
from PyQt5 import QtCore
from PyQt5.QtWidgets import *
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib import pyplot as plt
import numpy as np
class Window(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("pyQt5 sample")
self.setGeometry(50, 50, 660, 660)
self.button1 = QPushButton('Open Img', self)
self.button1.setGeometry(QtCore.QRect(20, 20, 100, 30))
self.FigureWidget = QWidget(self)
self.FigureWidget.setGeometry(QtCore.QRect(74, 120, 512, 512))
self.FigureLayout = QVBoxLayout(self.FigureWidget)
self.figure = plt.figure()
self.axes = self.figure.add_subplot(111)
self.axes.axis('off')
self.canvas = FigureCanvas(self.figure)
self.FigureLayout.addWidget(self.canvas)
self.button1.clicked.connect(self.plot)
def plot(self):
x1=np.arange(0, 4*np.pi, 0.1)
y1=np.sin(x1)
self.axes.plot(x1,y1,c='r')
self.axes.axis('on')
self.canvas.draw()
if __name__ == "__main__":
app = QApplication(sys.argv)
ex =Window()
ex.show()
sys.exit(app.exec_())
import sys
from PyQt5 import QtCore
from PyQt5.QtWidgets import *
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib import pyplot as plt
import numpy as np
class Window(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("pyQt5 sample")
self.setGeometry(50, 50, 660, 660)
self.button1 = QPushButton('Open Img', self)
self.button1.setGeometry(QtCore.QRect(20, 20, 100, 30))
self.FigureWidget = QWidget(self)
self.FigureWidget.setGeometry(QtCore.QRect(74, 120, 512, 512))
self.FigureLayout = QVBoxLayout(self.FigureWidget)
self.figure = plt.figure()
self.axes1 = self.figure.add_subplot(211)
self.axes1.axis('off')
self.axes2 = self.figure.add_subplot(212)
self.axes2.axis('off')
self.canvas = FigureCanvas(self.figure)
self.FigureLayout.addWidget(self.canvas)
self.button1.clicked.connect(self.plot)
def plot(self):
x1=np.arange(0, 4*np.pi, 0.1)
y1=np.sin(x1)
self.axes1.plot(x1,y1,c='r')
self.axes1.axis('on')
self.axes2.plot(x1,y1,c='r')
self.axes2.axis('on')
self.canvas.draw()
if __name__ == "__main__":
app = QApplication(sys.argv)
ex =Window()
ex.show()
sys.exit(app.exec_())