我正在制作一个GUI,以允许非Python用户输入一些参数,并且代码将在后台运行并生成图像。下面的代码通过实质上导致matplotlib
生成图像而大大简化。 目前,该图像在新窗口中打开,但是我想知道是否可以在GUI窗口中显示该图像。
import sys
import numpy as np
import matplotlib.pyplot as plt
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(400, 519)
self.btnRun = QtWidgets.QPushButton(Dialog)
self.btnRun.setGeometry(QtCore.QRect(80, 350, 211, 23))
self.btnRun.setObjectName("btnRun")
self.btnRun.clicked.connect(self.do_something)
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.btnRun.setText(_translate("Dialog", "Click Me"))
def do_something(self):
y = np.random.rand(3,2)
plt.imshow(y, cmap='magma')
plt.show()
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
Dialog = QtWidgets.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())
我不确定是否需要设置占位符以使图像填充在窗口中,但是任何帮助都会很棒。
所需结果:
道歉...