我有一个不需要鼠标的全屏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()
启动时,鼠标指针不可见。但是,在启动Text小部件后,它会变得可见,然后停留(在文本框架和屏幕的其余部分之间改变形状)。
我发现了一些关于如何隐藏鼠标光标的文章(通过在参数中使用cursor=''
),但是我找不到任何可以在小部件上使用鼠标指针的文章。
是否可以在Tkinter中完全隐藏(或禁用)鼠标指针?
(a question on how to set the mouse position帮助我通过发出self.root.event_generate('<Motion>', warp=True, x=self.root.winfo_screenwidth(), y=self.root.winfo_screenheight())
来移动这个光标。这不是一个解决方案,但至少指针不会从屏幕中间跳到一个人的脸上)
答案 0 :(得分:19)
我想,
root.config(cursor="none")
应该有用。
答案 1 :(得分:5)
我最接近的是创建一个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()