Hintergrundfarbe Button

Fragen zu Tkinter.
Antworten
Mosnum
User
Beiträge: 7
Registriert: Mittwoch 27. April 2022, 09:19

Code: Alles auswählen

import tkinter as tk

def grad_nach_kelvin():
    grad = int(eingabefeld_wert.get())
    kelvin = grad + 273
    textausgabe = tk.Label(root, text=kelvin, bg="yellow")
    textausgabe.pack()

root = tk.Tk()

eingabefeld_wert = tk.StringVar()
eingabefeld = tk.Entry(root, textvariable=eingabefeld_wert)
eingabefeld.pack()

schaltf1 = tk.Button(root, text="Aktion durchführen", command=grad_nach_kelvin, highlightthickness="50", highlightcolor="blue", highlightbackground ="blue")

schaltf1.pack()


root.mainloop()
Warum ändert sich die Farbe des Buttons nicht? Highlightthickness funktioniert
Benutzeravatar
Dennis89
User
Beiträge: 1154
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

'background' sollte funktionieren.

Grüße
Dennis

Edit: Aber du willst doch nicht jedes mal ein neues Label erstellen, wenn die Einheit umgerechnet wird? Normal erstellt man die Objekte und ändert dann ihren Wert.
Dazu musst du mal schauen wie 'partial' funktioniert und der Zwischenstand sieht dann mal so aus:

Code: Alles auswählen

import tkinter as tk
from functools import partial


def grad_nach_kelvin(eingabe, textausgabe):
    textausgabe.configure(text=f'{int(eingabe.get()) + 273}')


def main():
    root = tk.Tk()
    eingabefeld_wert = tk.StringVar()
    eingabefeld = tk.Entry(root, textvariable=eingabefeld_wert)
    eingabefeld.pack()
    textausgabe = tk.Label(root, text='', bg="yellow")
    textausgabe.pack()
    schaltf1 = tk.Button(root, text="Aktion durchführen", command=partial(grad_nach_kelvin, eingabefeld_wert, textausgabe),
                         highlightthickness="50", highlightcolor="blue", background="blue")
    schaltf1.pack()
    root.mainloop()


if __name__ == '__main__':
    main()
Dann verwendet man keine Abkürzungen und nummeriert auch keine Namen, vor allem bringt die 1 nichts, weil es keinen weiteren Button gibt.

Ps du hast die 0.15 vergessen :P
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
Dennis89
User
Beiträge: 1154
Registriert: Freitag 11. Dezember 2020, 15:13

Nochmal bearbeiten geht nicht.

Vielleicht sind die Namen so besser:

Code: Alles auswählen

import tkinter as tk
from functools import partial


def celsius_to_kelvin(celsius, converted_value):
    converted_value.configure(text=f'{int(celsius.get()) + 273.15}')


def main():
    root = tk.Tk()
    entry = tk.Entry(root,)
    entry.pack()
    converted_value = tk.Label(root, text='')
    converted_value.pack()
    button = tk.Button(root, text="Aktion durchführen", command=partial(celsius_to_kelvin, entry, converted_value))
    button.pack()
    root.mainloop()


if __name__ == '__main__':
    main()
Sorry die Farben taten mir in den Augen weh.

Edit: Sorry folgender Satz in der eckigen Klammer war falsch von mir.
['grad_nach_kelvin' ist auch falsch, weil Kelvin auch Grad ist. Die Differenz von 273.15 gibt es zwischen Grad Celsius und Grad Kelvin.]

So jetzt bin ich aber ruhig.

Grüße
Dennis

Edit: 'entry' braucht die 'textvariable' doch eigentlich auch nicht.
Zuletzt geändert von Dennis89 am Donnerstag 28. April 2022, 22:09, insgesamt 1-mal geändert.
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
__blackjack__
User
Beiträge: 13100
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Dennis89: Kelvin ist nur Kelvin ohne Grad.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Benutzeravatar
Dennis89
User
Beiträge: 1154
Registriert: Freitag 11. Dezember 2020, 15:13

Danke @__blackjack__ das habe ich nun schon immer falsch gesagt und bis jetzt hat mich noch keiner verbessert. :oops:
"When I got the music, I got a place to go" [Rancid, 1993]
Mosnum
User
Beiträge: 7
Registriert: Mittwoch 27. April 2022, 09:19

Hey danke für die Antworten. Ich hangel mich an einem Online-Tutorial entlang. Das sollte nur dazu dienen bisschen was zu lernen!
LG
Antworten