Ich habe ein Dropdown-Menü mit 7 Auswahlmöglichkeiten für mein Berechnungsprogramm. Ich möchte jeder Auswahl einen anderen Wert zuweisen, damit, wenn ein Benutzer eine Auswahl trifft, der alternative Wert an die Formel für die Berechnung übergeben wird. Wenn der Benutzer beispielsweise 42 auswählt, wäre der alternative Wert 2143, der an den Abschnitt ohms = float(e4.get()) meiner Formel übergeben würde. Wie würde ich das machen? Ich verwende PyCharm.
from tkinter import *
import os
os.system('clear')
root = Tk()
root.title('Pickup Coil Turn Count Calculator')
root.geometry("400x700")
root.configure(bg='#ffc773')
#turn_count holds the math formula for the calculation
def turn_count():
width, length, ohms, resistance = float(e2.get()), float(e3.get()), float(e4.get()), float(e5.get())
turn_count = resistance / ohms * 1000 * 12 / ((width * 3.14) + length + length - width * .19) * .969
count_label['text'] = int(turn_count)
#for the reset button
def clear_fields():
e1.delete(0, 'end')
e2.delete(0, 'end')
e3.delete(0, 'end')
clicked.set(options[0])
e5.delete(0, 'end')
count_label.config(text='')
myLabel = Label(root, text='Enter Core Height', bg='#ffc773')
myLabel.pack(pady=10)
e1 = Entry(root, width=10, justify='center', border=0)
e1.pack()
myLabel = Label(root, text='Enter Core Width', bg='#ffc773')
myLabel.pack(pady=10)
e2 = Entry(root, width=10, justify='center', border=0)
e2.pack()
myLabel = Label(root, text='Enter Core Length', bg='#ffc773')
myLabel.pack(pady=10)
e3 = Entry(root, width=10, justify='center', border=0)
e3.pack()
myLabel = Label(root, text='Select Wire Gauge', bg='#ffc773')
myLabel.pack(pady=10)
#each option would have an alternate value
options = [
'38',
'39',
'40',
'41',
'42',
'43',
'44',
]
clicked = IntVar()
clicked.set(options[0])
drop = OptionMenu(root, clicked, *options)
drop.pack()
myLabel = Label(root, text='Enter Target Resistance In Ohms', bg='#ffc773')
myLabel.pack(pady=10)
e5 = Entry(root, width=10, justify='center', border=0)
e5.pack()
Button(root, text='Calculate', command=turn_count).pack(pady=40)
myLabel = Label(root, text='Turn Count', bg='#ffc773')
myLabel.pack()
count_label = Label(root, width=10)
count_label.pack()
Button(root, text='Reset', command=clear_fields).pack(pady=30)
root.mainloop()
Wenn Sie die Antwort von @Cambuchi hinzufügen , können Sie Folgendes tun, um sie zu implementieren
options = {
'42':2143.0,
'38':1234.0,
'39':5678.0
}
clicked = StringVar()
clicked.set(list(options.keys())[0])
drop = OptionMenu(root, clicked, *options.keys())
drop.pack()
Beachten Sie, dass ich StringVar
anstelle von verwendet habe, IntVar
da die Wörterbuchschlüssel Stings sind und wir sie benötigen, um eine Zeichenfolge zurückzugeben, wenn eine get
Methode dafür verwendet wird. Sie können die Werte direkt als haben float
und vermeiden, sie später zu übertragen.
ohms = options[clicked.get()]
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen