Python 编程是自动循环的

Python 编程是自动循环的,python,tkinter,desktop-application,Python,Tkinter,Desktop Application,我对编写代码还很陌生,因此陷入了困境。我在tkinter模块中使用python。这是一个非常简单的程序,可以将C转换为F。现在我给它添加了一个GUI,它似乎工作正常。转换按预期进行。它在正确的框中显示所有信息。当然,现在还需要很多细节,但基地正在运作。然后我添加了“回车”键来控制一个函数,程序就失控了。它现在不断循环,就好像我一直在按转换器按钮或“回车”一样。我似乎找不到循环是在哪里创建的,也找不到如何正确终止循环。我已经试过在else语句后加上一个“Break” import tkin

我对编写代码还很陌生,因此陷入了困境。我在tkinter模块中使用python。这是一个非常简单的程序,可以将C转换为F。现在我给它添加了一个GUI,它似乎工作正常。转换按预期进行。它在正确的框中显示所有信息。当然,现在还需要很多细节,但基地正在运作。然后我添加了“回车”键来控制一个函数,程序就失控了。它现在不断循环,就好像我一直在按转换器按钮或“回车”一样。我似乎找不到循环是在哪里创建的,也找不到如何正确终止循环。我已经试过在else语句后加上一个“Break”

    import tkinter

    window = tkinter.Tk()

    value = tkinter.Label(window, text='Please enter C\u00b0:',
                          bd=2, justify='left')
    value.grid(row=1, ipadx=7, ipady=2, sticky='e')


    value_print = tkinter.Label(window, text='F\u00b0 is:', bd=2,
                                justify='left')
    value_print.grid(row=2, ipadx=7, ipady=2, sticky='e')

    output = tkinter.IntVar()
    var = tkinter.IntVar()
    c_input = tkinter.Entry(window, textvariable=var, bd=2,
                            justify='left')
    c_input.grid(row=1, column=2, ipadx=7, ipady=2, sticky='w')


    def converter(c):
        f = (c*9/5+32)
        if c < -273.15:
            output.set('''Please enter a value over the lowest possible
            temperature(-273.15) that physical matter can reach.''')
            print(invalid)
        else:
            output.set(f)
            print(f)


    def print_con(event=None):
        c = var.get()
        print(converter(int(c)))


    enter = tkinter.Button(window, text='Convert', command=print_con)
    enter.grid(row=3, column=2, ipadx=7, ipady=2, sticky='w')
    window.bind('<Enter>', print_con)

    f_output = tkinter.Message(window, bd=2, textvariable=output,
                               justify='left')
    f_output.grid(row=2, column=2, ipadx=7, ipady=2, sticky='w')


    window.mainloop()
导入tkinter
window=tkinter.Tk()
value=tkinter.Label(窗口,text='Please enter C\u00b0:',
bd=2,justify='left')
value.grid(行=1,ipadx=7,ipady=2,sticky='e')
值\u print=tkinter.Label(窗口,text='F\u00b0为:',bd=2,
(左)
值_print.grid(行=2,ipadx=7,ipady=2,粘滞=e')
output=tkinter.IntVar()
var=tkinter.IntVar()
c_输入=tkinter.Entry(窗口,文本变量=var,bd=2,
(左)
c_input.grid(行=1,列=2,ipadx=7,ipady=2,sticky='w')
def转换器(c):
f=(c*9/5+32)
如果c<-273.15:
output.set(“”)请输入一个超过最低可能值的值
物理物质能达到的温度(-273.15)。”
打印(无效)
其他:
输出设置(f)
印刷品(f)
def打印控制(事件=无):
c=变量get()
打印(转换器(int(c)))
enter=tkinter.Button(窗口,text='Convert',command=print\u con)
enter.grid(行=3,列=2,ipadx=7,ipady=2,sticky='w')
窗口绑定(“”,打印图标)
f_output=tkinter.Message(窗口,bd=2,textvariable=output,
(左)
f_output.grid(行=2,列=2,ipadx=7,ipady=2,sticky='w')
window.mainloop()

回车键在Tkinter中标记为

所以,只需更改这行代码:

window.bind('<Enter>', print_con)
window.bind(“”,打印)
为此:

window.bind('<Return>', print_con)
window.bind(“”,打印)

每当鼠标进入或离开小部件时,都会触发
。如果您想要返回键,您需要使用

谢谢,这也消除了rpogram中的瓶颈。哦,我明白了,谢谢。