Найти - Пользователи
Полная версия: Значения из интерфейса
Начало » GUI » Значения из интерфейса
1
jTiKey
Здравствуйте!

У меня такие вопросы.
Как мне присвоить текст, который пользователь напишет в поле Name и Number к каким-то значениям, после нажатия на кнопку Open?
Так же, как при выделении названия в Listbox это название так же присваивалось к другому значению?

использую tk, 3.3
4kpt
Вот для полей ввода.
def get_data_from_entry(event):
    data_nm = ent_nm.get()  # Получаем значения из поля Name
    data_nb = ent_nb.get()  # Получаем значения из поля Number
    print data_nm, data_nb
ent_nm = tkinter.Entry(root)  # Поле Name
ent_nb = tkinter.Entry(root)  # Поле Number
but = tkinter.Button(root, text=u"Open")
but.bind("<Button-1>", get_data_from_entry)
Для Listbox немного сложнее. В этом случае нужно предварительно сохранить список возможных значений в порядке, в котором их выводит в Listbox. После этого, используя функцию
Listbox.curselection()
Получаем позицию выбранной пользователем строки. Напоминаю, что позиции идут с нуля. Определив позицию из предварительно сохраненного списка вынимаем значения по позиции.
Функция будет выглядеть так:
def data_from_listbox(event=None):
    pos = int(Listbox.curselection()[0])
    result = data[pos]  # data - список всех строк (данных), выведенных в Listbox
    print result
Если есть еще вопросы - пишите :)

P.S. Разницы между tkinter в 2.Х и 3.Х практически нет. Поэтом можете использовать код 2.Х, только меняйте Tkinter на tkinter. И следите за дополнительными классами (например, вывод окна предупреждения или выбор файла). Они в 2.Х снесены в отдельный модуль.
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