2019-11-08 18:31:27 +00:00
|
|
|
import PySimpleGUI as sg
|
|
|
|
import matplotlib.pyplot as plt
|
|
|
|
|
|
|
|
"""
|
|
|
|
Simultaneous PySimpleGUI Window AND a Matplotlib Interactive Window
|
|
|
|
A number of people have requested the ability to run a normal PySimpleGUI window that
|
|
|
|
launches a MatplotLib window that is interactive with the usual Matplotlib controls.
|
|
|
|
It turns out to be a rather simple thing to do. The secret is to add parameter block=False to plt.show()
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
layout = [[sg.Button('Plot'), sg.Cancel(), sg.Button('Popup')]]
|
2019-11-08 18:33:29 +00:00
|
|
|
window = sg.Window('Have some Matplotlib....', layout)
|
2019-11-08 18:31:27 +00:00
|
|
|
|
|
|
|
while True:
|
2019-11-08 18:33:29 +00:00
|
|
|
event, values = window.read()
|
2019-11-08 18:31:27 +00:00
|
|
|
if event in (None, 'Cancel'):
|
|
|
|
break
|
|
|
|
elif event == 'Plot':
|
|
|
|
history = [0.1, 0.2, 0.5, 0.7]
|
|
|
|
plt.plot(history)
|
|
|
|
plt.show(block=False)
|
|
|
|
elif event == 'Popup':
|
|
|
|
sg.popup('Yes, your application is still running')
|
2019-11-08 18:33:29 +00:00
|
|
|
window.close()
|