Cómo iba a ser capaz de abrir una nueva ventana el usuario presiona un botón en un tkinter GUI? Solo me falta bastante soluciones simples, y si el código puede ser explicado así que sería genial.

  • Has intentado hacerlo usted mismo, y si ¿podría usted por favor, edita tu pregunta para contener el código
  • Parece como si tuviera dos preguntas aquí. «¿Cómo puedo hacer que algo suceda en respuesta a un clic de botón?». Asignar una función al botón command atributo, o el uso de la bind método. «¿Cómo puedo hacer una nueva ventana?» El uso de la Toplevel widget.
  • ¿Cuál es el nivel superior del widget?
  • por lo que entiendo, un TopLevel widget es una ventana emergente
  • Pero, ¿cómo iba yo a ser capaz de utilizarlo con el fin de hacer una nueva ventana? No entiendo cómo usarlo
InformationsquelleAutor Eddy Loring | 2014-12-24

1 Comentario

  1. 23

    Aquí está el casi más corto posible solución a su pregunta. La solución funciona en python 2.x. Para python 3.x cambio de la importación de «tkinter» en lugar de «Tkinter»:

    import Tkinter as tk
    
    def create_window():
        window = tk.Toplevel(root)
    
    root = tk.Tk()
    b = tk.Button(root, text="Create new window", command=create_window)
    b.pack()
    
    root.mainloop()

    Este es sin duda no lo recomiendo como un buen ejemplo del buen estilo de codificación, pero ilustra los conceptos básicos: un botón con un comando, y una función que crea una ventana.

    • He probado esta solución funciona, pero tengo la segunda ventana que utiliza la cuadrícula.. Y por lo tanto este err TclError: cannot use geometry manager grid inside . which already has slaves managed by pac
    • Usted puede usar ambos .pack() y .grid() en el mismo código. cambiar su .pack() a .grid()
    • ¿Cómo puedo añadir más funciones a la nueva ventana?
    • uso window como el maestro de widgets adicionales.

Dejar respuesta

Please enter your comment!
Please enter your name here