Hallo zusammen,
ich glaube ich habe gerade einen Hänger. Ich möchte 3 Radiobuttons einfügen in einer Gruppe. Ich will einen Radiobutton aktivieren und wenn ich dann in einem Entryfeld etwas eingebe und Enter drücke, das er die vom Radiobutton definierte funktion ausführt. Bei einem anderen Radio natürlich eine andere Funktion. Ich denke es ist pups einfach aber ich bekomme es gerade nicht hin xD
Radiobutton
@Eisi: Radiobuttons werden ja in Tkinter über ein Objket von einem Untertyp von `Variable` zusammengefasst über das man dann die aktuelle Auswahl ermitteln kann. Da könnte man eine `IntVar` eine Zahl als Wert nehmen die je nach Radiobutton die Werte 0 bis 2 annimmt. Dann packst Du die drei Funktionen in eine Liste un verwendest den Zahlenwert als Index um die passende auszuwählen.
Edit:
Edit:
Code: Alles auswählen
#!/usr/bin/env python
# coding: utf-8
import Tkinter as tk
from functools import partial
from operator import methodcaller
def change_text(function, entry):
text = function(entry.get())
entry.delete(0, tk.END)
entry.insert(0, text)
def main():
root = tk.Tk()
method_names = ['lower', 'upper', 'capitalize']
functions = [partial(change_text, methodcaller(m)) for m in method_names]
variable = tk.IntVar(root, value=0)
for i, text in enumerate(method_names):
tk.Radiobutton(root, text=text, value=i, variable=variable).pack()
entry = tk.Entry(root)
entry.pack()
tk.Button(
root, text='Apply', command=lambda: functions[variable.get()](entry)
).pack()
root.mainloop()
if __name__ == '__main__':
main()