Найти - Пользователи
Полная версия: RadioButton
Начало » GUI » RadioButton
1 2
rokki
будьте добры, как добиться чтобы при новом цикле обнулялись значения RadioButton

p=1
while p<100:
var=IntVar()
for i in range(1,5):
r=t.Radiobutton(fr2, value=i, variable=var)
r.grid(row=i, column=0, padx=10, pady=10)
r.config(bg='black', cursor='hand2')

p+=1
igor.kaist
Как понять “обнулялось”?
Что в итоге должно получится?
rokki
в итоге должна точка пропадать из кружочка, чтобы при появлении новых кнопок все “кружочки” были пустые.
DHT
var = IntVar()
var = 0
for i in range(1,5):
r = t.Radiobutton(fr2, value=i, variable=var)
r.grid(row=i, column=0, padx=10, pady=10)
r.config(bg='black', cursor='hand2')
Так не работает?
Griffon
.deselect()
var = 0
var.set(0)
rokki
Griffon
.deselect()
спасибо, сбрасывает, сейчас вставлю в программу
rokki
переделал, но получились вложенные функции, и теперь не могу получить значение var в каждом цикле, всегда ноль.Уже все варианты перепробовал
def okno_voprosov(self):
..................
def smena_voprosov():
global p, var
if p<24:
for i in range(4):
self.l1=Label(fr, text=self.otvet[0][i])
self.l1.grid(sticky=W, row=i, column=1)
self.r=Radiobutton(fr, value=i, variable=var)
self.r.grid(row=i, column=0)
u=var.get()
print 'u', u
p+=1
smena_voprosov()
Griffon
а что мешает передавать cсылку на var аргументом функции?
rokki
Griffon
а что мешает передавать cсылку на var аргументом функции?
ничего не мешает, я в отчаянии, вставил метод get() везде.
вот весь класс, везде var.get()=0
class osnovnoe_okno:
def close(self):
s=box.askyesno(title='Внимание!', message='Вы хотите выйти?\nОценка поставится автоматически 2')
if s==True:
root.quit()

def okno_voprosov(self):
global root
var=IntVar()
self.u=var.get()
print 'u1', self.u
def smena_voprosov(var):
global p
self.u=var.get()
print 'u2', self.u
if p<24:
print 'p', p
db.execute('select vopros from Vopros where num=?',(p,))
vopros=db.fetchall()
self.lab21=Label(root, text=vopros[0][0])
self.lab21.grid()
self.lab3=Label(root, text='Ответ')
self.lab3.grid()
fr=Frame(root)
fr.grid()
db.execute('select otv1, otv2, otv3, otv4 from Otvet where num=?', (p,))
self.otvet=db.fetchall()
#db.execute('select count (*) from Otvet where num=?',(p,))
for i in range(4):
self.l1=Label(fr, text=self.otvet[0][i])
self.l1.grid(sticky=W, row=i, column=1)
self.r=Radiobutton(fr, value=i, variable=var)
self.r.grid(row=i, column=0)
self.u=var.get()
print 'u3', self.u
p+=1
else:
pass

self.con=sql.connect('db_test')
self.db=self.con.cursor()
self.db.execute('select num from Vopros')
kol_vopr=db.fetchall()
qs=len(kol_vopr)
root.destroy()
root=Tk()
root.title('Информатика')
root.config(padx=150, pady=100)
self.lab1=Label(root, text='Информация и ее кодирование')
self.lab1.grid()
self.lab2=Label(root, text='Вопрос')
self.lab2.grid()
self.u=var.get()
print 'u4', self.u
smena_voprosov(var)


self.frn=Frame(root)
self.frn.grid(row=6, padx=25, pady=15)

# for i in range(1, 24):
# self.lab=Label(self.frn, text=i, bg='green')
# self.lab.grid( column=i-1, ipadx=7)
self.u=var.get()
print 'u5', self.u
self.but2=Button(root, text='Вперед>>', command=self.okno_voprosov)
self.but2.grid()
self.but3=Button(root, text='Выход', command=self.close)
self.but3.grid()


def vibor_varianta(self):
global root
root.destroy()
root=Tk()
root.title('Информатика')
root.config(padx=100, pady=100)
self.lab1=Label(root, text='Самостоятельная работа по теме:\n"Информация и ее кодирование"')
self.lab1.grid()
self.lab2=Label(root, text='Для начала выбирай вариант')
self.lab2.grid()
for i in range(1,4):
self.fr=Frame(root)
self.but=Button(self.fr, text='Вариант №',command=self.okno_voprosov)
self.fr.grid()
self.but.grid()
за подсказку буду весьма благодарен
Griffon
Вполне логично. Вызывается “окно вопросов”. В самом начале обьявляется var установленный в ноль. И далее без остановки “окно вопросов” выполняется до конца. А значение изменится только тогда когда пользователь выберет хотя бы один вариант. То есть если поставить print var.get() перед var = IntVar(), то там по нажатию на кнопку что-то да должно быть, если конечно хоть что-то выбрано.

p.s. Если я правильно понял код :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB