グラフを描画する別のスクリプトに関数があるので、グラフは既にプリロードされているので、私はPyQt5で自分のインタフェースのウィジェットに配置したいだけです。私はそれをインポートし、それが実行されると、2つのウィンドウが開きます.1つはグラフがあり、もう1つはユーザーインターフェイスがあります。ここでMatplotlibグラフをUIに埋め込むPyQt5
はコードです:
def minionRatioGraph(recentMinionRatioAvg):
x = recentMinionRatioAvg
a = x*10
b = 100-a
sizes = [a, b]
colors = ['#0047ab', 'lightcoral']
plt.pie(sizes, colors=colors)
#determine score colour as scolour
if x < 5:
scolour = "#ff6961" #red
elif 5 <= x < 5.5:
scolour = "#ffb347" #orange
elif 5.5 <= x < 6.5:
scolour = "#77dd77" #light green
elif 6.5 <= x:
scolour = "#03c03c" # dark green
#draw a circle at the center of pie to make it look like a donut
centre_circle = plt.Circle((0,0),0.75, fc=scolour,linewidth=1.25)
fig = plt.gcf()
fig.gca().add_artist(centre_circle)
# Set aspect ratio to be equal so that pie is drawn as a circle.
plt.axis('equal')
plt.show()
これは、1つのスクリプトです。私のGUIスクリプトでは、私はこれらのインポートされている:
from PyQt5 import QtCore, QtGui, QtWidgets
import sqlite3
import matplotlib.pyplot as plt
from matplotlib.figure import Figure
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as
FigureCanvas
from graphSetup import *
をそして、私のウィンドウクラスの開始時に、セットアップ機能の前に、私はこの機能を持っている:
def minionGraphSetup(self, recentMinionRatioAvg):
minionRatioGraph(recentMinionRatioAvg)
これは動作しますが、これは私が探していたものではなく、あなたのせいです。私はおそらくguiにちょうどイメージとしてグラフをエクスポートすることができたか知っていますか?グラフを画像として保存できるのは分かっていますが、私が知っている限り、更新された画像を画面に表示する方法はありますか?リソースファイルをコンパイルするときは、すべての画像が同じままです。それをリロードする方法。 –
画像の回答が更新されました。私は現在それをテストすることはできませんので、作業コードよりもロードマップとしてそれを多く取ってください。 – ImportanceOfBeingErnest
コードは 'pixmap = QPixmap(image)'で動作しなくなりました。なぜか分かりません。何かご意見は?また、どのように私はそれを私の窓に置くのだろうか?私は窓の名前を渡して、self.centralwidgetをQLabelカッコに入れますか?ありがとう –