【发布时间】:2021-01-03 17:00:00
【问题描述】:
当我的透明背景被点击时,我需要关闭我的程序,但问题是 TKinter 不会记录对任何透明项目的点击,除非它们下方有像 question 这样的东西。
如果我这样做了
from tkinter import *
firstTime = True
def backgroundClicked(event):
if firstTime == False:
print("clicked")
quit()
window = Tk("Dynamic CheatSheet")
window.configure(bg="red")
window.attributes("-transparentcolor", "red")
window.geometry("500x500")
masterFrame = Frame(window, width=500, height=500, bg="red")
masterFrame.pack()
masterFrame.bind('<Button-1>', backgroundClicked)
firstTime = False
window.mainloop()
然后单击它不起作用的背景,但如果我将背景设置为实心,那么绑定就像一个魅力(尝试更改为例如“黄色”)。
另外wm_attributes('-alpha', 0.0) 对我不起作用,因为我只希望部分 UI 是透明的。
我也考虑过使用 pynput 来注册每次点击,但我无法让它与 tkinter 同时工作。
所以 TLDR 我想让我的透明背景在 tkinter 中注册点击,但我不知道该怎么做。
感谢您的任何回复。
【问题讨论】:
-
listener = pynput.keyboard() ; listener.start() ; window.mainloop() ; listener.join()