#python #tkinter
Вопрос:
Я в основном пытаюсь вывести переменную x за пределы функции или создать переменную, которая изменяется в зависимости от радиокнопок.
x = ''
def test():
global x
x = y.get()
y = tk.StringVar()
tk.Radiobutton(root, text = "Pizza", variable = y, value = 'pz',padx=10, pady=10,command=test)
tk.Radiobutton(root, text = "Burger", variable = y, value = 'bk',padx=10, pady=10,command=test)
print (x)
Спасибо за любую помощь, я новичок в концепциях python и tkinter.
Комментарии:
1. Почему вы хотите, чтобы это было вне функции?
2. Я хотел бы, чтобы это было вне функции, чтобы использовать значение и хранить его в другой переменной, чтобы иметь возможность использовать его как оператор IF/ELSE в более поздней части кода, в которой используются 3 разных набора переключателей.
3. С какой проблемой вы столкнулись ? Будьте добры, объясните
4. В принципе, я хотел бы сделать так, чтобы при нажатии на кнопку radiobutton значение сохранялось как переменная, которую я могу использовать в более поздней части кода.
Ответ №1:
Если вы обернете его в a class
и добавите переменную в self
, то любой член класса сможет получить к нему доступ. В случае, если вам нужно передать дополнительные переменные из локальной области, вам нужно будет использовать a lambda
.
import tkinter as tk
class App(tk.Tk):
def print_value(self):
print(self.radio_svar.get())
def __init__(self):
tk.Tk.__init__(self)
self.radio_svar = tk.StringVar(value='pz')
self.radio_a = tk.Radiobutton(
self, text="Pizza",
variable=self.radio_svar, value='pz',
padx=10, pady=10, command=self.print_value
)
self.radio_a.pack()
self.radio_b = tk.Radiobutton(
self, text="Burger",
variable=self.radio_svar, value='bk',
padx=10, pady=10, command=self.print_value
)
self.radio_b.pack()
if __name__ == '__main__':
app = App()
app.mainloop()