【发布时间】:2017-06-04 04:26:43
【问题描述】:
我正在尝试在应用程序中结合 pyplot 和 Tkinter。在这个应用程序中,用户可能首先创建一个图形,然后打开一个 GUI。现在我发现在打开GUI之前创建图形时,GUI的Radiobutton只返回一个空变量(在我的例子中是一个空字符串),没有分配正确的值。在制作 GUI 之前没有创建图形时,单选按钮可以正常工作。
最小的失败示例:
from matplotlib import pyplot as plt
import Tkinter as tk
class GUI(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
self.shape = tk.StringVar()
self.circleButton = tk.Radiobutton(self, text="Circle", variable=self.shape, value='circle', command=self.selected)
self.circleButton.pack()
def selected(self):
print self.shape.get()
if __name__ == "__main__":
plt.ion()
plt.figure()
gui=GUI()
gui.mainloop()
运行此代码时,单击单选按钮会打印一个空字符串,而不是“圆圈”。如果我删除 plt.figure(),单击按钮会打印“圆圈”(如预期的那样)。
谁能告诉我如何解决这个问题,并允许用户先制作一个图形然后打开 GUI?
【问题讨论】:
-
matplot 可以运行自己的
mainloop并且 tkinter 可能只使用一个mainloop才能正常工作。 matplot 具有与 Tkinter 配合使用的特殊功能 - 查找文档或教程“如何在 tkinter 窗口中嵌入绘图”
标签: python matplotlib tkinter