Automatische Rechenoperation [ohne Button]

Fragen zu Tkinter.
Antworten
Sabbse92
User
Beiträge: 13
Registriert: Samstag 29. Februar 2020, 20:02

Hallo zusammen,

ich erstelle eine Grafische Benutzeroberfläche mithilfe von Tkinter und habe eine Frage zum Rechnen mit eingegebenen Werten.

Angenommen das Programm soll das Produkt zweier Werte a, b berechnen. Der einzige Lösungsweg den ich hierfür finde ist die command Option im Button-Widget.

Meine Frage ist: Existiert eine alternative Lösung, bei welcher das Programm das Produkt nach Eingabe automatisch berechnet (ohne Verwendung eines Buttons) ?



Meine Lösung mithilfe des Buttons-Widgets:

Code: Alles auswählen

from tkinter import *

root = Tk()

# Enter Values for Parameters a, b
Parameter1 = Label(root, text="a:")
Parameter2 = Label(root, text="b:")

Parameter1.grid(row = 0, column = 0)
Parameter2.grid(row = 1, column = 0)


entry1 = Entry(root)
entry2 = Entry(root)

entry1.grid(row = 0, column = 1)
entry2.grid(row = 1, column = 1)


# Compute a*b

Label_product = Label(root, text = "a * b")
Label_product.grid(row = 2, column = 0)

entry_ab = Entry(root)
entry_ab.grid(row = 2, column = 1)

def ab():
    num1 = int(entry1.get())
    num2 = int(entry2.get())
    
    entry_ab.delete(0, END)
    entry_ab.insert(0, num1 * num2)
    
Button_product = Button(root, text = "Multiply", command = ab)
Button_product.grid(row = 3, column = 1)

mainloop()
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Grundsaetzlich schon, du kannst zB DoubleVars nehmen, und durch tracing bekommst du raus, wenn derer Wert sich geaendert hat. Oder mit bind arbeiten, und nach key-release-events auf die Inhalte schauen.

Sei dir aber bewusst, dass du dann auch mit fehlschlagenden Operationen umgehe musst. ZB ZeroDivisionError und aehnlichem.
Sabbse92
User
Beiträge: 13
Registriert: Samstag 29. Februar 2020, 20:02

Danke für deine Antwort _deets_

Ich finde im I-net leider keine Beispiele. Wenn es nicht zu Aufwendig ist, könntest du mir DoubleVar und trace bitte ein Minimalbsp für die Multiplikation erstellen oder mir eine gute Quelle empfehlen?

Ich erstelle nähmlich eine größere GUI, bei der nach Eingabe bestimmter Werte mehrere komplexe Rechenoperationen ausgeführt werden sollen. Der Anwender soll nicht immer auf einen Button klicken, damit die Rechnung ausgeführt wird^^
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nein, ich habe da leider auch nichts vorraetig. Aber was an der offiziellen Doku

https://effbot.org/tkinterbook/variable.htm

ist dir unklar? Du bekommst eine Rueckruffunktion, wenn der Wert einer Variablen sich aendert. Und Variablen koennen zB in Entry oder anderen Widgets als Container fuer deren Inhalte angegeben werden.
Sabbse92
User
Beiträge: 13
Registriert: Samstag 29. Februar 2020, 20:02

Befasse mich erst seit kurzem mit Tkinter. Habe es aber jetzt nach einigem herum probieren hinkriegt!

Danke für deine Hilfe!
Antworten