Python-从“退出程序”;“虽然是真的”;用鼠标点击循环

Python-从“退出程序”;“虽然是真的”;用鼠标点击循环,python,tkinter,while-loop,mouseevent,Python,Tkinter,While Loop,Mouseevent,为什么我不能关闭程序时,有一个鼠标点击一个框架,而在真正的循环 程序监听UDP或Sense HAT的输入,并在窗口上显示它们。很简单:) 我想用鼠标单击退出程序 最终程序将在启动时运行,如果出现错误,它将重新启动 现在我将解释我的程序,你们可以从上面的链接获得完整的代码。它启动,但等待UDP数据。如果你愿意,我可以上传bat文件供服务器PC发送。(注:nmea语句仅用于提供信息,而不是我从船上获得的信息) 最后,如果您想评论程序的结构(或其他),请这样做,我已经30年没有编写例程了。这是我的第一

为什么我不能关闭程序时,有一个鼠标点击一个框架,而在真正的循环

程序监听UDP或Sense HAT的输入,并在窗口上显示它们。很简单:)

我想用鼠标单击退出程序

最终程序将在启动时运行,如果出现错误,它将重新启动

现在我将解释我的程序,你们可以从上面的链接获得完整的代码。它启动,但等待UDP数据。如果你愿意,我可以上传bat文件供服务器PC发送。(注:nmea语句仅用于提供信息,而不是我从船上获得的信息)

最后,如果您想评论程序的结构(或其他),请这样做,我已经30年没有编写例程了。这是我的第一个Python例程

程序的第一部分(这是简短版本)

导入、打开UDP端口并定义“关闭命令”

主窗口设计

## Main Window
root = Tk()
root.title("Screen GUI")
root.overrideredirect(True)
root.geometry('800x1280-0-0')

## fonts ##
Font208 = ('digiGA2', 156)

awind_frame = Frame(root, bg='cyan', width=800, height=732, pady=0, padx=0)

awind_frame.grid(row=0, sticky="ew")

## create the WIDGETS for the awind_frame
ctr_mid = Frame(awind_frame, bg='black', width=600, height=732)
ctr_mid.grid(row=0, column=1, sticky="nsew")

## create the WIDGETS for the awind_frame ctr_mid
sog_cer = Frame(ctr_mid, width=600, height=244)
sog_cer.pack_propagate(0)
sog_cer.pack(side = TOP)
sog_label = Label(sog_cer, anchor="e", text='9.9', font=Font208,padx="85", pady="17", bg='black', fg='#ffffff')
我想在这里感受一下“右键点击”

在这些设置之后,while循环开始

while True:
   nmea_data, addr = serverSock.recvfrom(1024)
   nmea_header = nmea_data [3:6]
   nmea_data = str(nmea_data)
   def rightClick(event): sys.exit()
此部分从UDP获取nmea数据,并根据帧设置值

而EOF是

root.mainloop()

我已经找到了解决退出问题的方法。但是
while true
循环仍在等待UDP输入。我如何让它在不等待输入的情况下运行?
sog_label.pack(fill=BOTH, expand=1)

root.update()
while True:
   nmea_data, addr = serverSock.recvfrom(1024)
   nmea_header = nmea_data [3:6]
   nmea_data = str(nmea_data)
   def rightClick(event): sys.exit()
root.mainloop()