Hallo, ist es möglich focus auf maus click auf bestimmter position im Fenster, danach focus auf text-label nach dem man enter auf der Tastatur klickt wieder focus auf maus auf einer bestimmten position im Fenster, und immer wieder das gleiche, geht so etwas?
Danke Gruß
ganja
focus()
-
- User
- Beiträge: 1715
- Registriert: Freitag 31. Juli 2015, 13:34
@ganja: Maus braucht keinen Fokus. Du klickst einfach irgendwo mit der Maus drauf. Aber Tastendrücke brauchen einen Fokus. Wenn Du auf der Tastatur etwas eingibst, dann wird das dort hingeschrieben, worauf der Focus ist, sofern man dort etwas schreiben kann. Aber mit der Maus kann man überall hinklicken. Fokus hat also mit der Maus nichts zu tun. Natürlich kann man mittels Mausklick auch den Fokus für die Tastatureingabe ändern.
-
- User
- Beiträge: 1715
- Registriert: Freitag 31. Juli 2015, 13:34
Stimmmt nicht ganz. Der Fokus hat schon etwas mit dem Mausklick zu tun. Denn worauf Du mit der Maus klickst, das bekommt dann auch oft den Fokus. Wenn Du in ein Entry Feld klickst, dann kannst Du dann auch in dieses schreiben.
-
- User
- Beiträge: 1715
- Registriert: Freitag 31. Juli 2015, 13:34
Buttons bekommen in tkinter normalerweise keinen Fokus. Aber man kann sie so einstellen, dass sie ihn bekommen.
Dann kann man den Fokus mit der Tab Taste wechseln. Hier sieht man das an der roten Umrandung:
Hier kann man dann etwa auch den Button dann mit der Leertaste drücken.
Dann kann man den Fokus mit der Tab Taste wechseln. Hier sieht man das an der roten Umrandung:
Code: Alles auswählen
# -*- coding: utf-8 -*-
try:
import tkinter as tk
except ImportError:
import Tkinter as tk
class Application(tk.Tk):
def __init__(self,**kwargs):
tk.Tk.__init__(self,**kwargs)
# widget definitions ===================================
self.button1 = tk.Button(self,text='button1', takefocus=1, highlightcolor='red', highlightthickness='4')
self.button2 = tk.Button(self,text='button2', takefocus=1, highlightcolor='red', highlightthickness='4')
self.button3 = tk.Button(self,text='button3', takefocus=1, highlightcolor='red', highlightthickness='4')
self.button1.pack(side='left')
self.button2.pack(side='left')
self.button3.pack(side='left')
if __name__ == '__main__':
Application().mainloop()
-
- User
- Beiträge: 1715
- Registriert: Freitag 31. Juli 2015, 13:34
Man kann aber den Fokus auch manuell setzen und dafür sorgen, dass man ihn nicht wechseln kann:
Code: Alles auswählen
# -*- coding: utf-8 -*-
try:
import tkinter as tk
except ImportError:
import Tkinter as tk
class Application(tk.Tk):
def __init__(self,**kwargs):
tk.Tk.__init__(self,**kwargs)
# widget definitions ===================================
self.button1 = tk.Button(self,text='button1', takefocus=0, highlightcolor='red', highlightthickness='4')
self.button2 = tk.Button(self,text='button2', takefocus=0, highlightcolor='red', highlightthickness='4')
self.button3 = tk.Button(self,text='button3', takefocus=0, highlightcolor='red', highlightthickness='4')
self.button1.pack(side='left')
self.button2.pack(side='left')
self.button3.pack(side='left')
self.button2.focus()
if __name__ == '__main__':
Application().mainloop()