Python Button



Die Syntax für einen Tkinter-Button mit den angegebenen Parametern ist:

Button(root, text="Abbrechen", command=root.destroy).pack(pady=5)

Diese Zeile erstellt einen Button und platziert ihn im Fenster[1][2]. Hier ist die Aufschlüsselung:

  1. Button() erstellt das Button-Widget.
  2. root ist das übergeordnete Fenster, in dem der Button platziert wird.
  3. text="Abbrechen" setzt den auf dem Button angezeigten Text.
  4. command=root.destroy definiert die Aktion, die beim Klicken ausgeführt wird (in diesem Fall wird das Fenster geschlossen).
  5. .pack(pady=5) ist eine Layoutmethode, die den Button im Fenster platziert mit 5 Pixeln vertikalem Abstand.

Diese Syntax kombiniert die Erstellung und Platzierung des Buttons in einer einzigen Zeile, was in Tkinter-Anwendungen häufig verwendet wird.

from tkinter import *

root = Tk()
create_new_button = Button(root, text="Button1")
create_new_button.pack()
root.mainloop()

Hier wird die Fenstergröße des Fensters root auf 300 pixel festgelegt. Ausserdem wird an die rechte Maustaste eine erstellung eines neuen Button gebunden.

from tkinter import *

def create_new_button(event):
                         new_button = Button (root, text="Neuer Button")
                         new_button.pack()
root = Tk()
root.geometry("300x300")
root.bind("<Button-3>", create_new_button)
root.mainloop()
  • Die Funktion create_new_button wird definiert, die einen neuen Button an der Position des Mausklicks erstellt.
  • Das Hauptfenster root wird mit der Größe 300×300 Pixel erstellt.
  • Mit root.bind(„<Button-3>“, create_new_button) wird das Rechtsklick-Ereignis (Button-3) an die Funktion create_new_button gebunden.
    Verwendung von „<Button-3>“ für die rechte Maustaste in Tkinter.
  • Hinzufügen eines event-Parameters zur create_new_button-Funktion.
  • Hinzufügen von new_Button.pack(), um den Button tatsächlich anzuzeigen.

Wenn Sie nun mit der rechten Maustaste irgendwo im Fenster klicken, wird an dieser Stelle ein neuer Button erstellt.

Beachten Sie, dass dieser Ansatz die Buttons an absoluten Positionen platziert. Wenn Sie ein komplexeres Layout haben, müssen Sie möglicherweise die Positionierung anpassen oder ein Grid- oder Pack-Layout verwenden

Fenster schliessen

from tkinter import * 
#use tkinter instead of Tkinter (small, not capital T) if it doesn't work
#as it was changed to tkinter in newer Python versions

root = Tk()
Button(root, text="Quit", command=root.destroy).pack() #button to close the window
root.mainloop()

Der Button wird nie angezeigt, weil er vor der Erstellung des Hauptfensters definiert wurde

root.quit()

Die obige Zeile umgeht einfach root.mainloop(), d. h. root.mainloop() wird weiterhin im Hintergrund ausgeführt, wenn der Befehl quit() ausgeführt wird.

root.destroy()

Während des Befehls destroy() verschwindet root.mainloop(), d. h. root.mainloop() wird gestoppt. .destroy() zerstört und schließt das Fenster vollständig.

Wenn Sie das Programm also beenden und vollständig schließen möchten, sollten Sie root.destroy() verwenden, da es mainloop() stoppt und das Fenster und alle seine Widgets zerstört.

Wenn Sie jedoch eine Endlosschleife ausführen möchten und Ihr Tkinter-Fenster nicht zerstören möchten und nach der Zeile root.mainloop() Code ausführen möchten, sollten Sie root.quit( ) verwenden.

Um Buttons in Tkinter nebeneinander zu platzieren, haben Sie mehrere Möglichkeiten:

  1. Mit der pack()-Methode:
   button1.pack(side=LEFT)
   button2.pack(side=LEFT)
   button3.pack(side=LEFT)

Dies platziert die Buttons nebeneinander von links nach rechts.

  1. Mit der grid()-Methode:
   button1.grid(row=0, column=0)
   button2.grid(row=0, column=1)
   button3.grid(row=0, column=2)

Hier werden die Buttons in derselben Zeile (row=0) aber in verschiedenen Spalten platziert.

  1. Mit der place()-Methode:
   button1.place(x=10, y=10)
   button2.place(x=100, y=10)
   button3.place(x=190, y=10)

Diese Methode verwendet absolute Koordinaten, um die Buttons zu positionieren.

Die grid()-Methode ist oft am flexibelsten und einfachsten zu verwenden, besonders für komplexere Layouts. Die pack()-Methode ist gut für einfache horizontale oder vertikale Anordnungen