Форум сайта python.su
Здравствуйте!
Есть виджет OptionMenu. Когда пользователь выбирает какое-то значение из раскрывающегося списка, то некоторым образом меняется другой виджет.
Вот как называется событие “что-то выбрано в OptionMenu”?
С другими событиями всё работает, всё налажено, нужно только знать название этого события в tkinter.
Заранее спасибо за ответ.
Офлайн
Помогу без вопросов.
Хотя я же Вам написал ответ. Напишите, подробнее, что Вы хотите получить.
Например. Я выбираю в OptionMenu цвет, а рядом меняется цвет кнопки или что-то в этом роде.
Офлайн
Есть виджеты:
OptionMenu c выбором числа
opm2=OptionMenu(root, vr3, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,\ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
lb5=Label(root, fg="#c8d3dc", text=".. - .. - ...", bg="#fad9be")
opm2.bind('<событие>', func3)
Офлайн
Смотрим на код…
import Tkinter # def call(position): label["text"] = "%s/../.." % (position) # root = Tkinter.Tk() var = Tkinter.StringVar() opt = Tkinter.OptionMenu(root, var, *[12, 11, 10], command=call) opt.pack() # label = Tkinter.Label(root, text="../../..") label.pack() # root.mainloop()
Офлайн
Спасибо, 4kpt_II
Добавил в виджет command=func3 и всё работает.
Спасибо Вам, буду знать!
Отдельное спасибо за строку label = “%s/../..” % (position)
Мой вариант более громоздкий.
Офлайн
Не за что
Можно еще использовать метод строки - .format().
P.S. Вы еще просили книги. Если они нужны, то пишите в личку скайп и я могу переслать.
Отредактировано 4kpt_II (Апрель 27, 2014 13:13:51)
Офлайн
Книги очень нужны. Кое-что в сети нашёл, конечно.
Но, как не стыдно признать, не могу найти как тут в личку писать.
На е-мэйл написал.
Отредактировано kotec (Апрель 27, 2014 13:31:20)
Офлайн
Всем привет!
Вот ещё вопрос. Как в tkinter получать свойства виджетов?
Например, есть виджет Label, у него в процессе исполнения программы меняются какие-то свойства, например, bg, text и т.д.
Как получитьь эти свойства?
У меня получилось, если для задания свойств использовать специальные классы, например, StringVar, но есть же, наверное, прямой способ.
Заранее спасибо.
Офлайн
Есть два варианта.
Формально, множество свойств виджета собраны как словарь, поэтому
print but["bg"]
print but.cget("bg")
Офлайн
Спасибо, 4kpt_II!
Всё сработало. Очень ценная информация.
Офлайн