Форум сайта python.su
Здравствуйте. Radiobutton должен выбирать только 1 пункт, но можно выбрать несколько, хоть все:
#! /usr/bin/env python
# _*_ coding: utf-8 _*_
import tkinter
t = ['горы', 'лес', 'степь']
def zem(event): # окно выбора земли
zem = tkinter.Toplevel(gl_okno)
zem.title('земля')
for x in range(3):
var_zem = tkinter.IntVar()
var_zem.set(1)
kn_zem = tkinter.Radiobutton(zem, text=t[x], variable=var_zem, value=x)
kn_zem.grid(row=x, column=2)
# ------------------------------------------------------------------------------
gl_okno = tkinter.Tk() # главное окно
gl_okno.title('my lands калькулятор')
but_zem = tkinter.Button(gl_okno, text='Выбрать землю')
but_zem.bind('<Button-1>', zem)
but_zem.grid(row=1, column=3)
gl_okno.mainloop()
Офлайн
Отключение всех остальных кнопок при включении какой-то придется делать вручную
Офлайн
Не понял. А как же:
* Radiobuttonhttp://ru.wikipedia.org/wiki/Tkinter
Переключатель. Представляет одно из альтернативных значений некоторой переменной. Обычно действует в группе. Когда пользователь выбирает какую-либо опцию, с ранее выбранного в этой же группе элемента выбор снимается.
Офлайн
А, в вашем коде надо просто
var_zem = Tkinter.IntVar()
var_zem.set(1)
вынести из цикла
“To form several radiobuttons into a functional group, create a single control variable (see Section 28,
“Control variables: the values behind the widgets” (p. 103), below), and set the variable option of
each radiobutton to that variable.”
Про ручное отключение это я конечно поторопился :)
Отредактировано (Май 15, 2011 11:44:57)
Офлайн
Спасибо. Чёрт, в который на детской ошибке запинаюсь
Офлайн