Tkinter фоновые горячие клавиши - PullRequest
0 голосов
/ 09 марта 2019

Я писал простое приложение-счетчик, которое содержит 3 счетчика внутри текстовых файлов с интерфейсом GUI. Счетчики могут подниматься, опускаться и очищаться (обнуляться). Я создал горячие клавиши для этого, используя tkinter, но не могу запускать горячие клавиши в качестве фоновых процессов (я думаю, это то, что они называются), когда я их свернул или у меня запущено полноэкранное приложение.

import tkinter as tkinter
import sys
import os

root = tkinter.Tk()

winCounter = tkinter.IntVar()
tieCounter = tkinter.IntVar()
loseCounter = tkinter.IntVar()

def countUp(counter):
    counter.set(counter.get() + 1)
    counter4file = str((counter.get() + 1) - 1)
    if counter == winCounter:
        file = open("winsCounter.txt","w+")
        file.write(counter4file)
        file.close()
    elif counter == loseCounter:
        file = open("loseCounter.txt","w+")
        file.write(counter4file)
        file.close()
    else:
        file = open("tiesCounter.txt","w+")
        file.write(counter4file)
        file.close()

def countDown(counter):
    counter.set(counter.get() - 1)
    counter4file = str((counter.get() - 1) + 1)
    if counter == winCounter:
        file = open("winsCounter.txt","w+")
        file.write(counter4file)
        file.close()
    elif counter == loseCounter:
        file = open("loseCounter.txt","w+")
        file.write(counter4file)
        file.close()
    else:
        file = open("tiesCounter.txt","w+")
        file.write(counter4file)
        file.close()

def countClear(event=None):
    winCounter.set(0)
    loseCounter.set(0)
    tieCounter.set(0)
    zeroOut = "0"
    file1 = open("winsCounter.txt","w+")
    file2 = open("loseCounter.txt","w+")
    file3 = open("tiesCounter.txt","w+")
    file1.write(zeroOut)
    file2.write(zeroOut)
    file3.write(zeroOut)
    file1.close()
    file2.close()
    file3.close()
    #os.remove("winsCounter.txt")
    #os.remove("tiesCounter.txt")
    #os.remove("loseCounter.txt")

tkinter.Label(root, textvariable=winCounter, fg = "white", bg ="green", font = "Verdana 30 bold").pack()
tkinter.Label(root, textvariable=tieCounter, fg = "white", bg ="green", font = "Verdana 30 bold").pack()
tkinter.Label(root, textvariable=loseCounter, fg = "white", bg ="green", font = "Verdana 30 bold").pack()

winUp = tkinter.Button(root, text="Win +1", command=lambda: countUp(winCounter)).pack()
winDown = tkinter.Button(root, text="Win -1", command=lambda: countDown(winCounter)).pack()
tieUp = tkinter.Button(root, text="Tie +1", command=lambda: countUp(tieCounter)).pack()
tieDown = tkinter.Button(root, text="Tie -1", command=lambda: countDown(tieCounter)).pack()
loseUp = tkinter.Button(root, text="Lose +1", command=lambda: countUp(loseCounter)).pack()
loseDown = tkinter.Button(root, text="Lose -1", command=lambda: countDown(loseCounter)).pack()
clearAll = tkinter.Button(root, text="CLEAR!!", command=lambda: countClear()).pack()

root.bind("<Control-F1>", lambda event: countUp(winCounter))
root.bind("<Control-F2>", lambda event: countDown(winCounter))
root.bind("<Control-F5>", lambda event: countUp(tieCounter))
root.bind("<Control-F6>", lambda event: countDown(tieCounter))
root.bind("<Control-F7>", lambda event: countUp(loseCounter))
root.bind("<Control-F8>", lambda event: countDown(loseCounter))
root.bind("<Control-F4>", lambda event: countClear())

root.mainloop()

Любая помощь приветствуется, большое спасибо

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