尝试在GUI窗口中打印我的函数的输出

时间:2015-10-25 23:43:39

标签: python user-interface tkinter

我试图制作一个在GUI窗口内无休止地打印数字的小程序,我找不到在GUI窗口内的文本框中打印函数的输出而不是python shell的方法,请帮忙,这是我到目前为止的代码......

import sys
from tkinter import *

root = Tk()

def number(event):
    x = 420
    while True:
        x +=420
        print(x^70)

button_1 = Button(root, text="Start...")
button_1.bind("<Button-1>", number)
button_1.pack()

root.mainloop()

谢谢哈维

1 个答案:

答案 0 :(得分:0)

您会发现很难不断地将值插入到窗口小部件中。每个插入都不会更新窗口小部件。你可以认为它有一个临时变量。它可以在循环期间访问(如打印所示)。但是,您会注意到小部件本身在循环结束之前不会更新。因此,如果您有while True,那么您的小部件将永远不会更新,因此您不会将这些数字流式传输到小部件中。

import sys
from tkinter import *

root = Tk()

def number():
    x = 420
    while x < 8400: # Limit for example
        x +=420
        textbox.insert(END, str(x^70)+'\n') 
        print(textbox.get(1.0, END)) # Print current contents

button_1 = Button(root, text="Start...", command=number) #Changed bind to command, bind is not really needed with a button
button_1.pack()

textbox = Text(root)
textbox.pack()

root.mainloop()