2013-12-07 85 views
7

我有一個不需要鼠標的全屏Tkinter Python應用程序 - 簡化版本如下。它會打開全屏並在按F1時激活文本小部件。如何隱藏或禁用Tkinter中的鼠標指針?

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() 

啓動時,鼠標指針不可見。但是,在啓動文本窗口小部件後,它仍然可見,然後停留(改變文本框架和屏幕其餘部分之間的形狀)。

我發現了幾篇關於如何隱藏鼠標光標的文章(在參數中使用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())移動此光標了。這不是一個解決辦法,但至少指針不會一個人的臉從屏幕中間跳)

回答

4

我能來最接近的是創建一個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() 
16

我想,

root.config(cursor="none")應該工作。

+0

在Windows 10和Ubuntu 16下爲我工作 – ChewToy