Как я могу сделать это приложение многопоточным? - PullRequest
0 голосов
/ 27 сентября 2019

Я просто не могу придумать это, я пробовал вещи, которые, по моему мнению, имели смысл, но я думаю, что я просто слишком глуп для этого.Пожалуйста, объясните (после нажатия кнопки «Пуск» приложение зависает, и вы не можете остановить запись)

from pynput.keyboard import Key, Listener
import time, logging
from threading import *


# functions
class logger():
    should_log=False
    def log(should_log):
        while should_log:
            log_dir = ""
            logging.basicConfig(filename=(log_dir + "key_log.txt"), level=logging.DEBUG, format='%(asctime)s: %(message)s')
            def on_press(key):
                logging.info(key)
            with Listener(on_press=on_press) as listener:
                listener.join()

    #
    def logger(should_log):
        logger.log(True)
    #   
    def stoplogger(should_log):
        logger.log(False)

# main
lg= logger()
window = Tk()
window.title("Logger")
window.configure(background="black")
# GUI
logo = PhotoImage(file="key.png")
Label(window, image=logo, bg="black").grid(row=0, column=0, sticky=E)
Label(window, text="Start logging", bg="black", fg="white", font="none 12 bold").grid(row=1, column=0)
Label(window, text="Stop logging", bg="black", fg="white", font="none 12 bold").grid(row=2, column=0)
#
Button(window, text="Start", width=10, command=lg.logger).grid(row=1, column=0, sticky=W)
Button(window, text="Stop", width=10, command=lg.stoplogger) .grid(row=2, column=0, sticky=W)
#


####

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