Python3 tkinter是否可以使框架能够被点击?

时间:2017-02-01 00:12:49

标签: python tkinter

我正在创建一个带有一些计时器的小型跟踪窗口,我希望能够点击它。我还没有找到解决这个问题的方法。窗口本身已创建,定时器正在工作。我唯一无法弄清楚的是,是否有可能使窗口点击。我正在使用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()

1 个答案:

答案 0 :(得分:0)

不,不可能使用tkinter执行此操作。有可能通过大量特定于平台的扩展来实现这一点,但是如果你走这条路线,你也可以在没有tkinter的情况下编写本机解决方案。