Tkinter - 仅在第二次执行后返回

时间:2017-01-04 09:16:02

标签: python tkinter ipython-notebook

我在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

1 个答案:

答案 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