一部のデータを取り込み、それを別の関数に送信する GUI を作成しました。次に、その関数はグラフをプロットし、それを jpeg 画像として保存します。ここで、この画像をピックスマップ ラベルとして GUI ウィンドウに動的に表示したいと思います。プッシュボタンがクリックされるのを待ってから、関数が呼び出されます。しかし、呼び出された関数内でプロットが完了し、実行が返された直後に、ラベルがピックスマップを取得するようにします。
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
btn = QtGui.QPushButton('button', self)
btn.setToolTip('<b>calculate</b>')
btn.resize(btn.sizeHint())
btn.move(150, 500)
btn.clicked.connect(self.call)
pixmap = QtGui.QPixmap('image.jpg')
label = QtGui.QLabel(self)
label.setPixmap(pixmap)
label.move(440, 50)
def call(self):
#plotting is done here
plt.clf()
plt.plot(x_data, y_data)
plt.ylabel('y')
plt.xlabel('x')
plt.savefig('image.jpg', format='jpg')
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()