Найти - Пользователи
Полная версия: Вопросы по tkinter
Начало » GUI » Вопросы по tkinter
1
kotec
Здравствуйте!
Есть виджет OptionMenu. Когда пользователь выбирает какое-то значение из раскрывающегося списка, то некоторым образом меняется другой виджет.
Вот как называется событие “что-то выбрано в OptionMenu”?
С другими событиями всё работает, всё налажено, нужно только знать название этого события в tkinter.
Заранее спасибо за ответ.
4kpt_II
Помогу без вопросов.
Хотя я же Вам написал ответ. Напишите, подробнее, что Вы хотите получить.
Например. Я выбираю в OptionMenu цвет, а рядом меняется цвет кнопки или что-то в этом роде.
kotec
Есть виджеты:
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)
func3 получает значение var3 и в соответствии с этим значением меняет виджет lb5, вставляя выбранное число вместо первых двух точек.
У меня всё получилось. Например, если вместо слова “событие” в коде поставить “Leave” или “ButtonPress”, то всё работает, виджет lb5 меняется, но, естественно, не в момент выбора пользователем значения в списке.
Вот я хочу спросить - как называется событие “выбрать что-то в OptionMenu” в tkinter?
4kpt_II


Смотрим на код…

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()

P.S. Будут вопросы - пишите …
kotec
Спасибо, 4kpt_II
Добавил в виджет command=func3 и всё работает.
Спасибо Вам, буду знать!
Отдельное спасибо за строку label = “%s/../..” % (position)
Мой вариант более громоздкий.
4kpt_II
Не за что
Можно еще использовать метод строки - .format().

P.S. Вы еще просили книги. Если они нужны, то пишите в личку скайп и я могу переслать.
kotec
Книги очень нужны. Кое-что в сети нашёл, конечно.
Но, как не стыдно признать, не могу найти как тут в личку писать.
На е-мэйл написал.
kotec
Всем привет!
Вот ещё вопрос. Как в tkinter получать свойства виджетов?
Например, есть виджет Label, у него в процессе исполнения программы меняются какие-то свойства, например, bg, text и т.д.
Как получитьь эти свойства?
У меня получилось, если для задания свойств использовать специальные классы, например, StringVar, но есть же, наверное, прямой способ.
Заранее спасибо.
4kpt_II
Есть два варианта.

Формально, множество свойств виджета собраны как словарь, поэтому

print but["bg"]

Кроме того, есть метод, который тоже позволяет получить значение свойства

print but.cget("bg")

Используйте тот вариант, который больше по-душе.

P.S. Будут вопросы - пишите …
kotec
Спасибо, 4kpt_II!
Всё сработало. Очень ценная информация.
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