#python #tkinter #radio-button
Вопрос:
Я просто хочу создать класс, который показывает и обрабатывает некоторые RadioButtons
из них . Я здесь новичок Tkinter
и не понимаю, в чем проблема.
Когда я запускаю его, появляется сообщение об ошибке :
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/tkinter/__init__.py", line 2567, in _setup
name = cnf['name']
TypeError: string indices must be integers
Я думаю, что я неправильно обрабатываю данные в «режимах», но это просто ощущение.
Это и есть код:
from tkinter import Checkbutton, Radiobutton, StringVar, Tk, Label, IntVar
class Enabler:
b1: Radiobutton
b2: Radiobutton
v: StringVar
def __init__(self, tk: Tk, r: int, c: int):
Label(tk, " username/email and password required?").grid(row=r, column=c)
var = StringVar(tk, "active")
var.set("active")
modes = [
("Yes", "active"),
("No", "disabled")
]
tmp_c: int = c
for k, v in modes:
Radiobutton(tk, text=k, value=v, variable=var,
command=self.getValue).grid(row=r, column=tmp_c)
tmp_c = 1
def getValue(self) -> str:
print(self.v.get())
return self.v.get()
tk = Tk()
e = Enabler(tk, 0, 0)
Я использую python3.10
Комментарии:
1. Вам необходимо указать
text=" username/email and password required?"
вLabel(tk, " username/email and password required?").grid(row=r, column=c)
2. Я чувствую себя такой глупой