Saltar al contenido

Como hacer una ventana con botones en python

Este grupo de redactores ha pasado horas investigando la solución a tus interrogantes, te regalamos la respuestas y deseamos resultarte de mucha apoyo.

Solución:

Visión general

No, no tienes que “dibujar un rect, luego hacer un bucle”. Lo que tu voluntad lo que tiene que hacer es importar un juego de herramientas GUI de algún tipo y usar los métodos y objetos integrados en ese juego de herramientas. En términos generales, uno de esos métodos será ejecutar un bucle que escuche eventos y llame a funciones en función de esos eventos. Este bucle se denomina bucle de eventos. Entonces, aunque dicho ciclo debe ejecutarse, no es necesario que lo cree.

Advertencias

Si está buscando abrir una ventana desde un mensaje como en el video al que se vinculó, el problema es un poco más difícil. Estos juegos de herramientas no están diseñados para usarse de esa manera. Por lo general, escribe un programa completo basado en GUI donde todas las entradas y salidas se realizan a través de widgets. No es imposible, pero en mi opinión, al aprender, debe apegarse a todo el texto o toda la GUI, y no mezclar los dos.

Ejemplo usando Tkinter

Por ejemplo, uno de esos conjuntos de herramientas es tkinter. Tkinter es el conjunto de herramientas integrado en Python. Cualquier otro kit de herramientas como wxPython, PyQT, etc. será muy similar y funcionará igual de bien. La ventaja de Tkinter es que probablemente ya lo tenga, y es un conjunto de herramientas fantástico para aprender a programar GUI. También es fantástico para una programación más avanzada, aunque encontrarás personas que no están de acuerdo con ese punto. No los escuches.

Aquí hay un ejemplo en Tkinter. Este ejemplo funciona en python 2.x. Para python 3.x, deberá importar desde tkinter más bien que Tkinter.

import Tkinter as tk

class Example(tk.Frame):
    def __init__(self, parent):
        tk.Frame.__init__(self, parent)

        # create a prompt, an input box, an output label,
        # and a button to do the computation
        self.prompt = tk.Label(self, text="Enter a number:", anchor="w")
        self.entry = tk.Entry(self)
        self.submit = tk.Button(self, text="Submit", command = self.calculate)
        self.output = tk.Label(self, text="")

        # lay the widgets out on the screen. 
        self.prompt.pack(side="top", fill="x")
        self.entry.pack(side="top", fill="x", padx=20)
        self.output.pack(side="top", fill="x", expand=True)
        self.submit.pack(side="right")

    def calculate(self):
        # get the value from the input widget, convert
        # it to an int, and do a calculation
        try:
            i = int(self.entry.get())
            result = "%s*2=%s" % (i, i*2)
        except ValueError:
            result = "Please enter digits only"

        # set the output widget to have our result
        self.output.configure(text=result)

# if this is run as a program (versus being imported),
# create a root window and an instance of our example,
# then start the event loop

if __name__ == "__main__":
    root = tk.Tk()
    Example(root).pack(fill="both", expand=True)
    root.mainloop()

Al final de la artículo puedes encontrar las interpretaciones de otros desarrolladores, tú todavía eres capaz insertar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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