python3tkinter有没有可能使框架可以点击通过?

2024-09-27 00:21:36 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Tags: ifrootlabelfontbolditalicsetflat
1条回答
网友
1楼 · 发布于 2024-09-27 00:21:36

不,不可能用tkinter做这个。使用大量特定于平台的扩展可能可以做到这一点,但是如果您这样做的话,您最好只编写一个没有tkinter的本机解决方案。你知道吗

相关问题 更多 >

    热门问题