我正在创建一个带有一些计时器的小型跟踪窗口,我希望能够点击它。我还没有找到解决这个问题的方法。窗口本身已创建,定时器正在工作。我唯一无法弄清楚的是,是否有可能使窗口点击。我正在使用tkinter包。
我的代码可以在这里找到:http://pastebin.com/qSFZqpQ6 - 它有点乱,因为我是Python的新手,所以我可能肯定会在我的设置上工作。
来自链接的代码
import win32api
import time
from tkinter import *
input = "0.00"
counter = time.clock()
flaskmult = 1.11
positionX = 2300
positionY = 1100
witchfireTime = 6
dyingrumiTime = 4.8
basaltTime = 7.9
activeTime = False
started = False
def keyWasUnPressed():
global counter
counter = time.clock()
global started
started = True
def isKeyPressed(key):
#"if the high-order bit is 1, the key is down; otherwise, it is up."
return (win32api.GetKeyState(key) & (1 << 7)) != 0
root = Tk()
root.title("Flasktracker")
root.overrideredirect(1)
root.geometry("+"+str(positionX)+"+"+str(positionY))
root.wm_attributes("-topmost", 1)
labelText = StringVar()
label = Label(root,textvariable=labelText, relief=FLAT, font = "Helvetica 36 bold italic").grid(row=0, column=0)
labelText.set("Witchfire: ")
labelText2 = StringVar()
label2 = Label(root,textvariable=labelText2, relief=FLAT, font = "Helvetica 36 bold italic").grid(row=0, column=1)
labelText2.set(input)
labelText3 = StringVar()
label3 = Label(root,textvariable=labelText3, relief=FLAT, font = "Helvetica 36 bold italic").grid(row=1, column=0)
labelText3.set("Dying/Rumi: ")
labelText4 = StringVar()
label4 = Label(root,textvariable=labelText4, relief=FLAT, font = "Helvetica 36 bold italic").grid(row=1, column=1)
labelText4.set(input)
labelText5 = StringVar()
label5 = Label(root,textvariable=labelText5, relief=FLAT, font = "Helvetica 36 bold italic").grid(row=2, column=0)
labelText5.set("Basalt: ")
labelText6 = StringVar()
label6 = Label(root,textvariable=labelText6, relief=FLAT, font = "Helvetica 36 bold italic").grid(row=2, column=1)
labelText6.set(input)
key = ord('1')
wasKeyPressedTheLastTimeWeChecked = False
def calcTime(timer):
return (timer*flaskmult)-(time.clock()-counter)
while True:
keyIsPressed = isKeyPressed(key)
if not keyIsPressed and wasKeyPressedTheLastTimeWeChecked:
keyWasUnPressed()
wasKeyPressedTheLastTimeWeChecked = keyIsPressed
activeTime = False
if started and calcTime(witchfireTime)>0:
labelText2.set('{:0.2f}'.format(calcTime(witchfireTime)))
activeTime = True
else:
labelText2.set("0.00")
if started and calcTime(dyingrumiTime)>0:
labelText4.set('{:0.2f}'.format(calcTime(dyingrumiTime)))
activeTime = True
else:
labelText4.set("0.00")
if started and calcTime(basaltTime)>0:
labelText6.set('{:0.2f}'.format(calcTime(basaltTime)))
activeTime = True
else:
labelText6.set("0.00")
if activeTime:
root.attributes('-alpha',1)
else:
root.attributes('-alpha',0)
time.sleep(0.001)
root.update_idletasks()
root.update()
答案 0 :(得分:0)
不,不可能使用tkinter执行此操作。有可能通过大量特定于平台的扩展来实现这一点,但是如果你走这条路线,你也可以在没有tkinter的情况下编写本机解决方案。