Desactivar foco para widgets tkinter – Python

Requisito previo: Python-Tkinter

En este artículo, discutiremos cómo deshabilitar el enfoque de los widgets en el marco Tkinter. Para deshabilitar el enfoque, usamos la opción de enfoque dentro del widget y asignamos su valor a 0.

Implementación paso a paso:

Paso 1: importa Tkinter e inicializa la ventana de tkinter 

Python3

# import tkinter 
import tkinter as tk
  
# initialize a tkinter window
root = tk.Tk()
  
# Creating the geometry with width and height of 300px
root.geometry("300x300")
  
# creating the body loop
root.mainloop()

Paso 2: Agrega algunos widgets a la aplicación

# Crear widget de botón

btn = tk.Button(root, text=”Button”) # inicializando el widget.

btn.pack() # llamando al widget en la aplicación

Código:

Python3

import tkinter as tk
   
# initialize a tkinter window
root = tk.Tk()
  
# Creating the geometry with width and height of 300px
root.geometry("300x300")
  
# create a button
btn = tk.Button(root, text ="I am button")
btn.pack()
  
# text widget
txt = tk.Entry(root, width=10)
txt.pack()
  
# create a radio button
rb = tk.Radiobutton(root, text ="I am radio button") 
rb.pack() 
  
# create a check button
cb = tk.Checkbutton(root, text = "I am check button")
cb.pack()
  
  
root.mainloop()

Producción:

Aquí notamos que nos enfocamos en cada widget después de presionar la tecla TAB. 

Paso 3: Agregar la funcionalidad de deshabilitar el enfoque a nuestro programa.

Usamos el argumento takefocus para deshabilitar el enfoque

Syntax: takefocus = 0

# for button
btn = tk.Button(root, text="Button", takefocus=0)

El enfoque del programa es deshabilitar el enfoque de los widgets con el argumento help takefocus . Ponemos su valor a 0 para hacerlo. Otros widgets tienen su foco habilitado.

Código:

Python3

import tkinter as tk
   
root = tk.Tk()
root.geometry("300x300")
  
# creating button
btn = tk.Button(root, text ="I am button")
btn.pack()
  
# takefocus is set to 0 for disabling the TAB key
# focus in widget
btn_no_focus = tk.Button(root, text ="I am not focused",
                         takefocus = 0,foreground = "red")
btn_no_focus.pack()
  
# created an entry widget with width 10
txt = tk.Entry(root, width = 10)
txt.pack()
  
# creating a entry widget with width 10 and focus is
# 0 hence disabled 
txt = tk.Entry(root, width = 10, takefocus = 0)
txt.pack()
  
# Creating radiobutton
rb = tk.Radiobutton(root, text ="I am radio button") 
rb.pack() 
  
# putting an takefocus=0 for disabling focus
rb_unfocus = tk.Radiobutton(root, text ="I am unfocused radio button", 
                            takefocus = 0,foreground = "red") 
rb_unfocus.pack()
  
# creating the checkbutton
cb = tk.Checkbutton(root, text = "I am check button")
cb.pack()
  
  
cb_unfocused = tk.Checkbutton(root, text = "I am unfocused check button", 
                              takefocus = 0, foreground = "red")
cb_unfocused.pack()
  
root.mainloop()

Producción:

Los widgets de color rojo tienen takefocus=0 y otros no tienen este argumento. El color rojo solo se usa para mayor claridad, también puede eliminarlo.

Publicación traducida automáticamente

Artículo escrito por shiv_ka_ansh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *