Вот для полей ввода.
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. После этого, используя функцию
Получаем позицию выбранной пользователем строки. Напоминаю, что позиции идут с нуля. Определив позицию из предварительно сохраненного списка вынимаем значения по позиции.
Функция будет выглядеть так:
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.Х снесены в отдельный модуль.