2013-12-07 25 views
7

Mam pełnoekranową aplikację Tkinter Python, która nie potrzebuje myszy - wersja uproszczona znajduje się poniżej. Otwiera się na pełnym ekranie i uruchamia widżet tekstowy po naciśnięciu klawisza F1.Jak ukryć lub wyłączyć wskaźnik myszy w aplikacji 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() 

Po uruchomieniu wskaźnik myszy nie jest widoczny. Widać to jednak po zainicjowaniu widgetu Tekst, a następnie pozostaje (zmieniając kształt między ramką tekstową a resztą ekranu).

Znalazłem kilka artykułów o tym, jak ukryć kursor myszy (przy użyciu parametrów cursor=''), ale nie znalazłem niczego, co zadziałałoby dla wskaźnika myszy na widżetach.

Czy można całkowicie ukryć (lub wyłączyć) wskaźnik myszy w aplikacji Tkinter?

(a question on how to set the mouse position pomógł mi przenieść ten kursor dala wydając self.root.event_generate('<Motion>', warp=True, x=self.root.winfo_screenwidth(), y=self.root.winfo_screenheight()). To nie jest rozwiązanie, ale przynajmniej wskaźnik nie skakać w czyjejś twarzy od środka ekranu)

Odpowiedz

4

Najbliżej mogę przyjść to stworzyć Frame i ustawić kursor na "none", ale wciąż ma problem z wymaganiem, aby kursor opuścił i ponownie wszedł do okna aplikacji, przynajmniej na moim komputerze (Mac OS X Mavericks). Może ktoś może dowiedzieć się, jak wywołać kursor znika po załadowaniu aplikacji, ale tutaj jest kod mam tak daleko:

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

Chyba,

root.config(cursor="none") powinno działać.

+0

Pracowałem dla mnie pod Windows 10 i Ubuntu 16 – ChewToy

Powiązane problemy