WoJ*_*WoJ 9 python mouse tkinter
我有一个不需要鼠标的全屏Tkinter Python应用程序 - 简化版本如下.它会打开全屏并在按下时激活文本小部件F1
.
import Tkinter as tk
class App():
def __init__(self):
self.root = tk.Tk()
self.root.attributes('-fullscreen', True)
self.root.configure(background='red')
self.root.bind('<F1>', self.opennote)
self.root.bind('<F2>', self.closenote)
self.root.bind('<F3>', self.quit)
l = tk.Label(text="some text here")
l.pack()
self.root.mainloop()
def opennote(self, event):
self.n = tk.Text(self.root, background='blue')
self.n.pack()
def closenote(self, event):
self.n.destroy()
def quit(self, event):
self.root.destroy()
App()
Run Code Online (Sandbox Code Playgroud)
启动时,鼠标指针不可见.但是,在启动Text小部件后,它会变得可见,然后停留(在文本框架和屏幕的其余部分之间改变形状).
我发现了一些关于如何隐藏鼠标光标的文章(通过使用cursor=''
in参数),但是我找不到任何可以用于鼠标指针的小部件.
是否可以在Tkinter中完全隐藏(或禁用)鼠标指针?
(关于如何设置鼠标位置的问题帮助我通过发出一个来移动这个光标self.root.event_generate('<Motion>', warp=True, x=self.root.winfo_screenwidth(), y=self.root.winfo_screenheight())
.这不是解决方案,但至少指针不会从屏幕中间跳到一个人的脸上)
我最接近的是创建一个Frame
并将光标设置为'none',但它仍然存在一个问题,即要求光标离开并重新进入应用程序窗口,至少在我的机器上是什么(Mac OS X Mavericks).也许其他人可以弄清楚如何在应用程序加载时触发光标消失,但这是我到目前为止的代码:
import Tkinter as tk
class App():
def __init__(self):
self.root = tk.Tk()
self.root.attributes('-fullscreen', True)
self.main_frame = tk.Frame(self.root)
self.main_frame.config(background='red', cursor='none')
self.main_frame.pack(fill=tk.BOTH, expand=tk.TRUE)
self.root.bind('<F1>', self.opennote)
self.root.bind('<F2>', self.closenote)
self.root.bind('<F3>', self.quit)
l = tk.Label(self.main_frame, text="some text here")
l.pack()
self.root.mainloop()
def opennote(self, event):
self.n = tk.Text(self.main_frame, background='blue')
self.n.pack()
def closenote(self, event):
self.n.destroy()
def quit(self, event):
self.root.destroy()
App()
Run Code Online (Sandbox Code Playgroud)