domingo, 12 de enero de 2014

Los controles Checkbutton están diseñados para mostrarle al usuario varias opciones, el usuario puede elegir varias opciones, para el Radiobutton es parecido pero solo se puede elegir una opción.

Uso del wigdet Checkbutton

Para crear el widget primero usamos la clase Checkbutton, como siempre el primer parámetro indicado es la ventana asociada, le sigue el texto que se mostrara y al final una variable asociada, esta será de tipo IntVar o StringVar, en ella se almacenara 0 si no se ha seleccionado y 1 en caso contrario.


var = IntVar()

chk = Checkbutton(root, text=str(i), variable=var)

chk.pack(side=LEFT)

Si necesitamos saber cuando el usuario selecciona o deselecciona una opción podemos agregar un command que ejecutara la función definida cada vez que se haga clic sobre el Checbutton.

Para el ejemplo utilizaremos un arreglo para almacenar los IntVar y asi saber el estado de los checkbutton, también asociamos el command a la función Ver para que imprima el estado de los checkbutton en la consola.

from tkinter import *
def Ver():
   print([var.get() for var in states])
root = Tk()
states = []

for i in range(5,50,5):

   var = IntVar()

   chk = Checkbutton(root, text=str(i), variable=var, command=Ver)

   chk.pack(side=LEFT)

   states.append(var)


root.mainloop()

Uso del wigdet Radiobutton

Para usar el Radiobutton asociaremos un mismo StringVar a todos los widgets ya que solo queremos seleccionar uno a la vez, los radiobutton también tienen asociado un valor normalmente el texto que se muestra al lado, este lo asignaremos al atributo value.

Al igual que en el anterior también podemos agregar un command que se lance al momento de hacer clic, para el ejemplo mostraremos el contenido del StringVar.

from tkinter import *
def Ver():
   print(var.get())
root = Tk()
var = StringVar()
rad0 = Radiobutton(root, text="java", variable=var, value="java", command=Ver)

rad0.pack(side=LEFT)


rad1 = Radiobutton(root, text="csharp", variable=var, value="csharp", command=Ver)

rad1.pack(side=LEFT)


rad2 = Radiobutton(root, text="python", variable=var, value="python", command=Ver)

rad2.pack(side=LEFT)


var.set(' ')

root.mainloop()

Descargar Checkbutton y Radiobutton

0 comentarios :

Publicar un comentario