Python tkinter button farbe und grösse?
button = Button(root, text="Senden", command=msg)
das hier ist die line für meinen button. sie funktioniert einwandfrei!
Sobald ich allerdings padx oder pady oder bg oder fg hinzufüge:
button = Button(root, text="Starten!", command=msg, padx=50)
button = Button(root, text="Starten!", command=msg, fg="blue")
stürtzt das programm ab und die konsole meiint das Button keine funktion namens fg oder padx hat obwohl ich es exakt so in tutorials gesehn habe. frustrierend ._.
Vielleicht ist es ja offensichtlich. Freue mich über jede antwort.
3 Antworten
Ein einfaches Beispiel:
from tkinter import *
root = Tk()
button = Button(root, text="Senden", command="Hello", foreground="white", background="#0000aa")
button.pack()
root.mainloop()
Wenn ich die Zeile mit der Initialisierung deines Buttons einsetze und die Variable msg mit einem Wert belege, erhalte ich ebenso das erwartete Ergebnis. Ebenfalls lassen sich noch padx und pady anhängen.
Alternativ kann man die Eigenschaften nachträglich mit der configure-Methode ändern:
button.configure(bg="red", fg="yellow")
Was du nun prüfen kannst:
- Ob mein Beispiel bei dir funktioniert.
- Ob du irgendwo doch einen Syntaxfehler eingebaut hast.
- Ob du überhaupt tkinter nutzt oder ob es sich um die tkinter.tkk-Komponenten handelt (die weder fg noch bg kennen).
- Mit welcher tkinter-Version du arbeitest.
from tkinter import *
print(TkVersion)
Wobei ich da am wenigsten ein Problem vermute. Wann fg/foreground und bg/background eingeführt wurden, müsste ich nachschlagen. Seit tk 8.5 (Python 2.7) sind sie allerdings schon da.
Das heißt, du bekommst auch wenn du mein obiges Beispiel völlig unverändert und ohne weiteren Code versuchst auszuführen, erneut die in deiner Frage beschriebene Fehlermeldung oder was genau ist das Feedback?
Prüfe trotz alledem einmal, welche tk-Version verwendet wird und ebenso könnte von Interesse sein, welches OS du nutzt.
Ach und msg ist keine variable sondern eine funktion...
Eine Funktionsreferenz. Und die kann folgend auch in einer Variable stecken. 😉
du musst auch padx als etwas definieren
schlechtes beispiel mir fällt aber nix anderes ein
import discord.py
log = logging.getLogger('discord')
Und für was brauchst du das root?
discord? was hat das mit discord zu tun. ich programmier hier ein simples programm mit tkinter haha
ja hab doch nur nen beispiel gegeben das du fg usw definieren musst
ja ist ja definiert. Button = Button(root, text="Drück mich!", bg="blue")
kommt der fehler?
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'Button' is not defined
nö es kommt "Button doesn't have any attributes -padx"
Versuch es mal statt "fg" "foreground" zu benutzen
Und muss padx und so stuff nicht bei der "button.pack(...)" Zeile hin?
Trotz deiner starken bemühungen scheint es nicht zu klappen. Habe version 3.9.2 also daran liegt es sicher nicht.
Ach und msg ist keine variable sondern eine funktion...