tkinter – Button erstellen

Das Tkinter Button Widget

Das Button-Widget ist ein Standard-Tkinter-Widget, mit dem verschiedene Arten von Schaltflächen implementiert werden. Schaltflächen können Text oder Bilder enthalten, und Sie können jeder Schaltfläche eine Python-Funktion oder -Methode zuordnen. Wenn die Taste gedrückt wird, ruft Tkinter diese Funktion oder Methode automatisch auf.

Die Schaltfläche kann nur Text in einer einzelnen Schriftart anzeigen, der Text kann jedoch mehr als eine Zeile umfassen. Außerdem kann eines der Zeichen unterstrichen sein, um beispielsweise eine Tastenkombination zu markieren. Standardmäßig kann die Tabulatortaste verwendet werden, um zu einem Schaltflächen-Widget zu wechseln.
Wann Sie das Button Widget verwenden #

Einfach gesagt, Button-Widgets werden verwendet, um den Benutzer „do this now !,“ sagen zu lassen, wobei dies entweder durch den Text auf der Schaltfläche oder durch das auf der Schaltfläche angezeigte Symbol angezeigt wird. Schaltflächen werden normalerweise in Symbolleisten, in Anwendungsfenstern und zum Akzeptieren oder Schließen von Daten verwendet, die in ein Dialogfeld eingegeben werden.

Die für die Dateneingabe geeigneten Schaltflächen finden Sie in den Widgets „Checkbutton“ und „Radiobutton“.

Muster #

Einfache Tasten sind ziemlich einfach zu bedienen. Sie müssen lediglich den Inhalt der Schaltfläche (Text, Bitmap oder Bild) und die zu verwendende Funktion oder Methode angeben, wenn die Schaltfläche gedrückt wird:

import tkinter
from tkinter import *
master = Tk()
def callback():
print ( "click!")
b = Button(master, text="OK", command=callback)
b.pack()
mainloop()

Ein Button ohne Rückruf ist ziemlich nutzlos. es tut einfach nichts, wenn Sie die Taste drücken. Möglicherweise möchten Sie solche Schaltflächen trotzdem verwenden, wenn Sie eine Anwendung entwickeln. In diesem Fall ist es wahrscheinlich eine gute Idee, die Schaltfläche zu deaktivieren, um eine Verwirrung Ihrer Betatester zu vermeiden:

b = Button(master, text="Help", state=DISABLED)

Wenn Sie keine Größe angeben, wird die Schaltfläche gerade groß genug, um den Inhalt zu speichern. Sie können die Optionen padx und pady verwenden, um zusätzlichen Abstand zwischen dem Inhalt und dem Schaltflächenrand hinzuzufügen.

Sie können auch die Höhen- und Breitenoptionen verwenden, um die Größe explizit festzulegen. Wenn Sie Text in der Schaltfläche anzeigen, definieren diese Optionen die Größe der Schaltfläche in Texteinheiten. Wenn Sie stattdessen Bitmaps oder Bilder anzeigen, definieren sie die Größe in Pixel (oder anderen Bildschirmeinheiten). Sie können die Größe in Pixeln auch für Textschaltflächen angeben. Dies erfordert jedoch etwas Magie. Hier ist eine Möglichkeit, dies zu tun (es gibt Weitere):

import tkinter
from tkinter import *
master = Tk()
def callback():
print ( "click!")
f = Frame(master, height=80, width=132)
f.pack_propagate(0) # don't shrink
f.pack(pady=20)
b = Button(f, text="Sicher!", command=callback)
b.pack(fill=BOTH, expand=1,padx=20)
mainloop()

Schaltflächen können mehrere Textzeilen anzeigen (jedoch nur in einer Schriftart). Sie können Zeilenumbrüche verwenden oder die Option wraplength verwenden, um die Schaltfläche so zu gestalten, dass der Text von alleine umbrochen wird. Verwenden Sie beim Umbrechen von Text die Optionen anchor, justify, und evtl. padx damit die Objekte genau so aussehen, wie Sie es wünschen. Ein Beispiel:

b = Button(master, text=longtext, anchor=W, justify=LEFT, padx=2)

Damit ein gewöhnlicher Button so aussieht, als würde er gedrückt gehalten werden,. Wenn Sie beispielsweise eine Toolbox implementieren möchten, können Sie einfach die Relief von RAISED in SUNKEN ändern:

b.config(relief=SUNKEN)

Möglicherweise möchten Sie auch den Hintergrund ändern. Beachten Sie, dass eine möglicherweise bessere Lösung die Verwendung einer Checkbutton oder eines Optionsfelds mit aktivierter Option auf false ist:

b = Checkbutton(master, image=bold, variable=var, indicatoron=0)

In früheren Versionen von Tkinter überschreibt die Bildoption die Textoption. Wenn Sie beides angeben, wird nur das Bild angezeigt. In späteren Versionen können Sie die zusammengesetzte Option verwenden, um dieses Verhalten zu ändern. Um den Text über einem Bild anzuzeigen, setzen Sie compound auf CENTER:

b = Button(master, text="Click me", image=pattern, compound=CENTER)

Um ein Symbol zusammen mit dem Text anzuzeigen, setzen Sie die Option auf LEFT, RIGHT, TOP, oder BOTTOM:

# put the icon to the left of the text label 
b = Button(compound=LEFT, image=icon, text="Action")
# put the icon on top of the text
b = Button(compound=TOP, image=icon, text="Quit")