我在Tkinkter有一个非常简单的应用程序。我在Ipython Notebook中运行它。
问题是每当我运行应用程序并按下“获取”按钮一次,就不会返回任何内容。我再次按下按钮,返回两个值。我按下按钮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>按下3个按钮后(预期)10
10
10
<4>按下4个按钮后(预期)10
10
10
10
答案 0 :(得分:0)
已经搜索了一段时间的答案,令人烦恼的是,答案在我发布后立即显现出来。找到了答案here。虽然我不确定我理解,但第一个印刷品并没有引发标准冲洗。手动解决方法位于链接或下方
import sys
def on_button(self):
value = float(self.entry.get())
print (value*2)
sys.stdout.flush() #place this after the print statement