Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Tkinter - p.3

Tkinter - p.3

GUI con Tkinter y Python

Diego Codevilla

May 01, 2022
Tweet

More Decks by Diego Codevilla

Other Decks in Programming

Transcript

  1. 3 d.codevilla - CC-BY-SA - v1.0 / 2020-05 lista.get(pos) →

    devuelve el string en la posición indicada. lista.insert(pos, s) → agrega el el string s en posición pos (si pos = tkinter.END agrega al final) lista.delete(pos) → elimina el elemento en pos lista.size() → devuelve la cantidad de elementos en la lista lista.curselection() → devuelve el(los) elemento(s) seleccionado(s) lista = tkinter.Listbox(root) → Crea un Listbox Listbox
  2. 4 d.codevilla - CC-BY-SA - v1.0 / 2020-05 import tkinter

    def agregar(): # obtiene el string contenido en txtNombre nom = nombre.get() # agrega el string al inicio de la lista lstPerson.insert(0, nom) # borra el contenido de txtNombre nombre.set("") # pone foco en txtNombre txtNombre.focus_set() def limpiar(): # borra toda la lista lstPerson.delete(0, tkinter.END) Listbox
  3. Listbox 5 d.codevilla - CC-BY-SA - v1.0 / 2020-05 mw

    = tkinter.Tk() lstPerson = tkinter.Listbox(mw) btnAgregar = tkinter.Button(mw, text="Agregar", command=agregar) btnBorrar = tkinter.Button(mw, text="Limpiar", command=limpiar) nombre = tkinter.StringVar() txtNombre = tkinter.Entry(mw, textvar=nombre) lstPerson.grid(column=0, row=1, rowspan=3) btnAgregar.grid(column=1, row=0) btnBorrar.grid(column=1, row=1) txtNombre.grid(column=0, row=0) # pone foco en txtNombre txtNombre.focus_set() mw.mainloop()
  4. 6 d.codevilla - CC-BY-SA - v1.0 / 2020-05 slider.get(pos) →

    devuelve el valor slider.set() → fija el valor slider = tkinter.Scale(root, opciones...) → Crea un Slider orient = tkinter.HORIZONTAL, tkinter.VERTICAL (default) from_= y to= definen el rango de los valores command= función a ejecutar cuando cambia el valor Scale
  5. 7 d.codevilla - CC-BY-SA - v1.0 / 2020-05 import tkinter

    def mostrar_x(valor): valor_x.set("X: " + str(valor)) def mostrar_y(valor): valor_y.set("Y: " + str(valor)) mw = tkinter.Tk() slider_x = tkinter.Scale(mw, orient=tkinter.HORIZONTAL, from_=-10, to=10, command=mostrar_x) slider_y = tkinter.Scale(mw, to=2.5, resolution=0.25, tickinterval=0.5, digits=3, command=mostrar_y) Scale horizontal, desde -10 a 10 vertical, desde 0 a 2.5, movimiento mínimo 0.25, muestra valores cada 0.5 con 3 dígitos el callback recibe el valor del slider
  6. Scale 8 d.codevilla - CC-BY-SA - v1.0 / 2020-05 valor_x

    = tkinter.StringVar() lblValor_x = tkinter.Label(mw, textvar=valor_x) valor_y = tkinter.StringVar() lblValor_y = tkinter.Label(mw, textvar=valor_y) mostrar_x(slider_x.get()) mostrar_y(slider_y.get()) slider_x.grid(column=1, row=0) slider_y.grid(column=0, row=1, rowspan=2) lblValor_x.grid(column=1, row=1) lblValor_y.grid(column=1, row=2) mw.mainloop() Muestra el valor inicial de los sliders
  7. 9 d.codevilla - CC-BY-SA - v1.0 / 2020-05 rbutt.select(pos) /

    rbutt.deselect() → selecciona / deselecciona el radiobutton rbutton = tkinter.Radiobutton(root, opciones...) → Crea un radiobutton variable = una variable IntVar() o StringVar() que comparten los radiobuttons de un mismo grupo value = el valor que toma la variable cuando se selecciona el radiobutton Radiobutton
  8. 10 d.codevilla - CC-BY-SA - v1.0 / 2020-05 import tkinter

    def cambia_color(): c = color.get() cnvUno.configure(bg=c) mw = tkinter.Tk() cnvUno = tkinter.Canvas(mw) color = tkinter.StringVar() rb_rojo = tkinter.Radiobutton(mw, text="Rojo", variable=color, value="#FF0000", command=cambia_color) Radiobutton para cambiar opciones de widgets se usa configure() los Radiobutton con la misma variable estarán "vinculados"
  9. Radiobutton 11 d.codevilla - CC-BY-SA - v1.0 / 2020-05 rb_verde

    = tkinter.Radiobutton(mw, text="Verde", variable=color, value="#00FF00", command=cambia_color) rb_azul = tkinter.Radiobutton(mw, text="Azul", variable=color, value="#0000FF", command=cambia_color) rb_verde.invoke() rb_rojo.grid(row=1, column=0) rb_verde.grid(row=1, column=1) rb_azul.grid(row=1, column=2) cnvUno.grid(row=0, column=0, columnspan=3) mw.mainloop() Selecciona el verde y también se ejecuta la función callback cambia_color