python-3.x - 为什么回调发生在执行开始时,甚至在事件之后?
问题描述
为了使用 Tkinter 制作 GUI,我编写了一个简短的代码。我想通过单击按钮在新窗口上绘制一些数据。但是,当我运行代码时,我什至在单击按钮之前就得到了一个图。任何人都可以向我解释(知道我是初学者):1.为什么会这样?2. 我该如何解决?
def stop_draw():
"""
"""
import tkinter
from matplotlib.backends.backend_tkagg import ( FigureCanvasTkAgg,
NavigationToolbar2Tk)
# Implement the default Matplotlib key bindings.
from matplotlib.backend_bases import key_press_handler
from matplotlib.figure import Figure
import numpy as np
chid_wind = tkinter.Tk()
chid_wind.wm_title("Embedding in Tk")
fig = Figure(figsize=(5, 4), dpi=100)
t = np.arange(0, 3, .01)
fig.add_subplot(111).plot(t, 2 * np.sin(2 * np.pi * t))
canvas = FigureCanvasTkAgg(fig, master=chid_wind) # A
tk.DrawingArea.
canvas.draw()
canvas.get_tk_widget().pack(side=tkinter.TOP, fill=tkinter.BOTH,
expand=1)
toolbar = NavigationToolbar2Tk(canvas, chid_wind)
toolbar.update()
canvas.get_tk_widget().pack(side=tkinter.TOP, fill=tkinter.BOTH,
expand=1)
def on_key_press(event):
print("you pressed {}".format(event.key))
key_press_handler(event, canvas, toolbar)
canvas.mpl_connect("key_press_event", on_key_press)
def _quit():
chid_wind.quit() # stops mainloop
chid_wind.destroy() # this is necessary on Windows to prevent
# Fatal Python Error: PyEval_RestoreThread: NULL tstate
button = tkinter.Button(master=chid_wind, text="Quit", command=_quit)
button.pack(side=tkinter.BOTTOM)
tkinter.mainloop()
#..............................................................
from tkinter import *
window1=Tk()
#........................................
frmmeasurement=Frame(window1, bg="gray")
frmmeasurement.pack(side=LEFT)
#........................................
btnstop=Button(frmmeasurement, text='Stop', width=30,
font=("Times New Roman", 12, "bold"), command=stop_draw())
btnstop.pack(fill=X)
#........................................
我希望有一个窗口,包含一个框架和一个按钮(名为“停止”);然后只有当我单击此按钮时,才会出现一个包含绘图的新窗口。
解决方案
推荐阅读
- vue.js - i18n vue 在更改语言环境时不起作用,使用 vuetify 文本字段中的规则
- c# - 如何通过 C# 访问嵌套标签?
- java - Runnable 没有捕获到异常
- c# - 剑道组合框需要验证不起作用
- javascript - 我怎样才能将盒子移动到拐角处
- reactjs - 在带有路由的 github 页面上部署 Reactjs 网站会导致刷新时出现 404 错误
- javascript - 如何在 ReactJS 中隐藏/显示另一个组件内的组件
- elasticsearch - 文档数量相同,但每次运行 logstash 时索引大小都在增长
- android - 上传 .aab 文件后,它没有显示基于移动架构的应用程序大小
- inno-setup - 将版本添加到 Inno Setup 的 SetupWindowTitle