Tkinter - Return 仅在第二次执行后出现
Tkinter - Return only occurs after the 2nd execution
我在 Tkinkter 中有一个非常简单的应用程序。我正在 运行 将其保存在 Ipython 笔记本中。
问题是每当我 运行 应用程序并按下按钮 'Get' 一次时,没有任何返回。我再次按下按钮,返回了两个值。我按下按钮 3 次或更多次,每次按预期按下按钮时返回 1 个值。问题出在第一次按下按钮时。我不明白发生了什么事。
from tkinter import *
from tkinter import ttk, Tk
class SampleApp(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.entry = tk.Entry(self)
self.button = tk.Button(self, text="Get", command=self.on_button)
self.button.pack()
self.entry.pack()
def on_button(self):
value = float(self.entry.get())
print (value*2)
app = SampleApp()
app.mainloop()
输入=5
我在按下 1 个按钮后得到的输出(不是预期的)
无
按下 2 次按钮后(虽然我希望在此阶段有 2 个值,但我不希望同时出现 2 个值)
10
10
按下 3 次按钮后(预期)
10
10
10
按下 4 次按钮后(预期)
10
10
10
10
搜索了一段时间的答案后,令人恼火的是答案在我 post 之后自动显示出来。找到答案 here。虽然我不确定我是否理解,但第一次打印不会触发 stdout 刷新。手动解决方法在 link 或以下
import sys
def on_button(self):
value = float(self.entry.get())
print (value*2)
sys.stdout.flush() #place this after the print statement
我在 Tkinkter 中有一个非常简单的应用程序。我正在 运行 将其保存在 Ipython 笔记本中。
问题是每当我 运行 应用程序并按下按钮 'Get' 一次时,没有任何返回。我再次按下按钮,返回了两个值。我按下按钮 3 次或更多次,每次按预期按下按钮时返回 1 个值。问题出在第一次按下按钮时。我不明白发生了什么事。
from tkinter import *
from tkinter import ttk, Tk
class SampleApp(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.entry = tk.Entry(self)
self.button = tk.Button(self, text="Get", command=self.on_button)
self.button.pack()
self.entry.pack()
def on_button(self):
value = float(self.entry.get())
print (value*2)
app = SampleApp()
app.mainloop()
输入=5
我在按下 1 个按钮后得到的输出(不是预期的)
无
按下 2 次按钮后(虽然我希望在此阶段有 2 个值,但我不希望同时出现 2 个值)
10
10
按下 3 次按钮后(预期)
10
10
10
按下 4 次按钮后(预期)
10
10
10
10
搜索了一段时间的答案后,令人恼火的是答案在我 post 之后自动显示出来。找到答案 here。虽然我不确定我是否理解,但第一次打印不会触发 stdout 刷新。手动解决方法在 link 或以下
import sys
def on_button(self):
value = float(self.entry.get())
print (value*2)
sys.stdout.flush() #place this after the print statement