Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Redimensionar los widget con el método grid.-
#1
Hola Francisco, hola gente, ¿cómo están?, yo lidiado aprendiendo
a posicionar los widget con el método grid.-
leo y releo tu blog, pero no puedo hacer que me funcione, ¿me podrías
orientar?, desde ya gracias...

PD:no sé si me explique lo suficiente, quiero que al agrandar/achicar
la ventana los widget acompañen las nuevas dimensiones

Código:
from tkinter import ttk
import tkinter as tk

def main():

    def datos():
        #print(boton.grid_info())
        #print(app.grid_size())
        print(app.grid_slaves(column=0))


    app = tk.Tk()
    app.title(" Posicionar con grid")
    app.geometry("500x300+300+300")

    mensaje = tk.Label(app, text="Nombre del cliente")
    mensaje.grid(row=0, column=0, padx=5 , pady=10)

    entrada = ttk.Entry(app, width=30)
    entrada.grid(row=0, column=1, columnspan=2)

    boton = ttk.Button(app, text="Información", command=datos)
    boton.grid(row=1, column=1, ipadx=12, ipady=12)


    app.mainloop()

if __name__ == '__main__':
    main()

Slds. Daniel ☕☕☕
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
Responder
#2
Hola, Daniel, ¿cómo estás?

Una vez que ubicaste los controles en sus respectivas columnas y filas, tenés que indicar cuáles de ellas han de expandirse cuando se expanda la ventana y también cuáles de los controles han de expandirse. Lo primero se hace con las funciones rowconfigure() y columnconfigure(), lo segundo usando el argumento sticky. Por ejemplo, si queremos que la entrada se expanda horizontalmente, haríamos esto:

Código:
# Indicar que el control se expanda a la izquierda (w) y derecha (e).
entrada.grid(row=0, column=1, columnspan=2, sticky="we")
# Indicar que la columna donde se encuentra el control anterior
# también se expanda.
app.columnconfigure(1, weight=1)

El hecho de que sean dos las cosas que hay que configurar (tanto el widget como la columna y fila donde se encuentra) permite que haya múltiples controles en una misma columna pero con políticas de expansión diferentes (por ejemplo, que algunos se expandan y otros simplemente queden en el medio con un tamaño fijo).

Saludos
Responder
#3
Hola Francisco, estoy muy bien y agradecido por tu posteo, muy esclarecedor.-
Ahora tengo otra duda, mientras esperaba tu respuesta(el inpaciente) segui
practicando y puse todos los widget en un frame y funciona a la perfección,
¿que diferencia hay entre las 2 maneras?.


Slds. Daniel ☕☕☕
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
Responder
#4
Hola, Daniel.

Es lo mismo. Un frame simplemente permite agrupar un conjunto de controles que están relacionados entre sí: no tiene ningún impacto visual.

Saludos
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)