繁体   English   中英

如何在小部件上使用 PyQt5 显示图像?

[英]How to display images using PyQt5 on a widget?

我正在通过 PyQt5 制作 Wafer 等高线图程序。 我有一些问题。

import pandas as pd 
test = pd.DataFrame(index=range(0,101), columns=range(0,101)) # empty dataframe

for i in range(0,101):  # 
    for j in range(0,101):
        if ((50-i)**2 + (50-j)**2) < 50**2:
            test.loc[i,j] = i*2+i+j
        else:
            test.loc[i,j] = 0

import numpy as np
import matplotlib as mpl
import matplotlib.pylab as plt
test[test == 0] = np.nan
plt.figure(1)
plt.imshow(test, interpolation = 'hanning', vmin = 0, cmap = 'gist_rainbow_r')
plt.colorbar()

我得到了下面的图像

在此处输入图片说明

我想在 PyQt5 窗口上显示此图像而不是图形

我的窗口在下面

from PyQt5.uic import loadUiType
from matplotlib.figure import Figure
from matplotlib.backends.backend_qt5agg import (
    FigureCanvasQTAgg as FigureCanvas,
    NavigationToolbar2QT as NavigationToolbar)



Ui_MainWindow, QMainWindow = loadUiType(r'C:\Users\wtjang\.spyder-py3\window.ui')

import numpy as np
from PyQt5 import QtWidgets 

class Main(QMainWindow, Ui_MainWindow):
    def __init__(self, ):
        super(Main, self).__init__()
        self.setupUi(self)

    def addmpl(self, fig):
        self.canvas = FigureCanvas(fig)
        self.mplvl.addWidget(self.canvas)
        self.canvas.draw()

if __name__ == '__main__':
    import sys
    from PyQt5 import QtWidgets

    fig1 = Figure()
    ax1f1 = fig1.add_subplot(111)
    ax1f1.plot(np.random.rand(5))

    app = QtWidgets.QApplication(sys.argv)
    main = Main()
    main.addmpl(fig1)
    main.show()
    sys.exit(app.exec_())

在此处输入图片说明

如何将图形更改为晶圆图像?

我试过了

 if __name__ == '__main__':
        import sys
        from PyQt5 import QtWidgets

        fig1 = plt.imshow(test, interpolation = 'hanning', vmin = 0, cmap = 'gist_rainbow_r')


        app = QtWidgets.QApplication(sys.argv)
        main = Main()
        main.addmpl(fig1)
        main.show()
        sys.exit(app.exec_())

但我失败了。

我得到了答案。 谢谢你的帮助:)

ax1f1.imshow(test, interpolation = 'hanning', vmin = 0, cmap = 'gist_rainbow_r')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM