【发布时间】:2019-07-15 01:34:55
【问题描述】:
我正在尝试使用 matplotlib 实现 tkinter 检查按钮,以便更新绘图并仅显示选定的绘图。
但是,检查按钮不会更改变量。
我尝试了不同版本的 python 并将我的大部分代码剥离为简单的 tkinter 和 matplotlib 集成,但没有任何运气。
# coding: utf-8
# usr/bin/python37
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk
from tkinter import messagebox, Button, Tk, BooleanVar
from tkinter.ttk import Checkbutton
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use('TkAgg')
class GUI:
fig = plt.figure()
sub = fig.add_subplot(1, 1, 1)
def __init__(self, root):
self.root = root
self.root.title("Testing")
self.setupTk()
def setupTk(self):
self.canvas = FigureCanvasTkAgg(self.fig, master=self.root)
self.canvas.get_tk_widget().pack(side='top', fill='both', expand=1)
self.canvas._tkcanvas.pack(side='top', fill='both', expand=1)
'''
Problem
'''
self.var = BooleanVar()
self.var.set(True)
self.button = Checkbutton(
self.root, variable=self.var, text='Direvative', command=self.cb)
self.button.pack(side='left')
'''
/Problem
'''
self.button = Button(master=self.root, text='Quit', command=self._quit)
self.button.pack(side='right')
self.toolbar = NavigationToolbar2Tk(self.canvas, self.root)
self.toolbar.update()
self.root.protocol("WM_DELETE_WINDOW", self._quit)
def cb(self):
print(self.var.get())
def _quit(self):
if messagebox.askquestion('Exit Application', 'Are you sure you want to exit the application', icon='warning') == 'yes':
self.root.quit()
self.root.destroy()
if __name__ == '__main__':
root = Tk()
mod = GUI(root)
root.mainloop()
我正在使用:
Python: 3.7.3
Matplotlib: 3.1.1
我希望当用户单击检查按钮时打印输出会发生变化。
请随时向我指出在线资源。
【问题讨论】:
标签: python python-3.x matplotlib tkinter