Python - Выйти из цикла «Пока верно» с помощью мыши - PullRequest
0 голосов
/ 05 декабря 2018

Исходный файл

Почему я не могу ЗАКРЫТЬ программу, КОГДА во время цикла WHILE TRUE щелкнуть мышью на КАДРЕ?

Программа прослушивает UDP или Sense HAT дляввод и показывает их в окне.это просто:)

Мне нужно выйти из программы с помощью щелчка мышью

Final Программа будет запущена при запуске и при возникновении ошибки перезапустится.

Теперь я объясню свою программу, вы можете получить полный код по ссылке выше.Он запускается, но ожидает данных UDP.Если вы хотите, я могу загрузить файл bat для сервера ПК для отправки. (примечание: только некоторые предложения для информации, а не те, которые я получаю с лодки)

И наконец, если вы хотите прокомментировать структуру (или другое) программы, пожалуйста, СДЕЛАЙТЕ, у меня нетЯ написал рутину в течение 30 лет.И это моя первая подпрограмма Python.

Первая часть программы, (это короткая версия)

Импорт, открытие портов UDP и определение команды «Закрыть»

import time
try:
    import Tkinter as tk
    from Tkinter import *
except ImportError:
    import tkinter as tk
    from tkinter import *

import socket
UDP_IP_ADDRESS = ""
UDP_PORT_NO = 10110
serverSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
serverSock.bind((UDP_IP_ADDRESS, UDP_PORT_NO))

def rightClick(event): sys.exit()

Дизайн главного окна

## 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')

Здесь я хочу ощутить "щелчок правой кнопкой мыши"

sog_label.bind('<Button-3>', rightClick)

и остальную часть окна

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()

эта часть получает данные nmea из UDP и устанавливает значения в соответствии с кадрами

, а EOF равно

root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...