Requisito previo: Tkinter
Python ofrece múltiples opciones para desarrollar una GUI (interfaz gráfica de usuario). De todos los métodos GUI, Tkinter es el método más utilizado. Es una interfaz estándar de Python para el kit de herramientas Tk GUI que se envía con Python. Python con Tkinter es la forma más rápida y sencilla de crear aplicaciones GUI.
En este artículo, aprenderemos cómo hacer un panel de control para cambiar el tamaño de la ventana que se usa para cambiar el tamaño de la ventana una vez que se inicializa.
Acercarse:
- Crearemos dos ventanas; una ventana es un padre y otra es un niño.
- Agregue un botón; cuando hacemos clic en un botón, se abrirá la ventana secundaria.
- La ventana principal contiene tres controles deslizantes; ancho, alto y ambos controles deslizantes.
- A medida que cambia el valor de la diapositiva, la geometría secundaria cambiará.
Entendamos la implementación paso a paso: –
Paso 1: crea una ventana normal de Tkinter
Python3
# Import Library from tkinter import * # Create Object root = Tk() # Set title root.title("Controls") # Set Geometry root.geometry("400x500") # Execute Tkinter root.mainloop()
Producción:
Paso 2: Agregar botón , controles deslizantes y marco de etiquetas
Python3
# Import Library from tkinter import * from tkinter import ttk # Create Object root = Tk() # Set title root.title("Controls") # Set Geometry root.geometry("400x500") # Make Button launch_button = Button(root, text = "launch Window") launch_button.pack(pady = 10) # Add Label Frames width_frame = LabelFrame(root, text = "Change width") width_frame.pack(pady = 10) height_frame = LabelFrame(root, text = "change height") height_frame.pack(pady = 10) both_frame = LabelFrame(root, text = "change both") both_frame.pack(pady = 10) # Add Scale bar width_slider = ttk.Scale(width_frame, from_ = 100, to = 500, orient = HORIZONTAL, length = 200, value = 100) width_slider.pack(pady = 10, padx = 20) height_slider = ttk.Scale(height_frame, from_ = 100, to = 500, orient = VERTICAL, length = 200, value = 100) height_slider.pack(pady = 10, padx = 20) both_slider = ttk.Scale(both_frame, from_ = 100, to = 500, orient = HORIZONTAL, length = 200, value = 100) both_slider.pack(pady = 10,padx = 20) # Execute Tkinter root.mainloop()
Producción:-
Paso 3: Ahora crearemos cuatro funciones; una función es para un botón que abrirá la ventana secundaria y las otras tres para cambiar la geometría.
Utilice el método Toplevel() para crear una ventana secundaria.
Python3
# Open New Window def launch(): global second second = Toplevel() second.geometry("100x100") # Change width def width_slide(x): second.geometry(f"{int(width_slider.get())}x{int(height_slider.get())}") # Change height def height_slide(x): second.geometry(f"{int(width_slider.get())}x{int(height_slider.get())}") # Change both width and height def both_slide(x): second.geometry(f"{int(both_slider.get())}x{int(both_slider.get())}")
A continuación se muestra la implementación completa:
Python3
# Import Library from tkinter import * from tkinter import ttk # Create Object root = Tk() # Set title root.title("Controls") # Set Geometry root.geometry("400x500") # Open New Window def launch(): global second second = Toplevel() second.geometry("100x100") # Change width def width_slide(x): second.geometry(f"{int(width_slider.get())}x{int(height_slider.get())}") # Change height def height_slide(x): second.geometry(f"{int(width_slider.get())}x{int(height_slider.get())}") # Change both width and height def both_slide(x): second.geometry(f"{int(both_slider.get())}x{int(both_slider.get())}") # Make Button launch_button = Button(root, text = "launch Window", command = launch) launch_button.pack(pady = 10) # Add Label Frames width_frame = LabelFrame(root, text = "Change width") width_frame.pack(pady = 10) height_frame = LabelFrame(root, text = "change height") height_frame.pack(pady = 10) both_frame = LabelFrame(root, text = "change both") both_frame.pack(pady = 10) # Add Scale bar width_slider = ttk.Scale(width_frame,from_ = 100, to = 500, orient = HORIZONTAL, length = 200, command = width_slide, value = 100) width_slider.pack(pady = 10, padx = 20) height_slider = ttk.Scale(height_frame, from_ = 100, to = 500, orient = VERTICAL, length = 200, command = height_slide, value = 100) height_slider.pack(pady = 10, padx = 20) both_slider = ttk.Scale(both_frame, from_ = 100,to = 500, orient = HORIZONTAL, length = 200, command = both_slide, value = 100) both_slider.pack(pady = 10, padx = 20) # Execute Tkinter root.mainloop()
Producción: