Найти - Пользователи
Полная версия: вернуть значение в переменную из entry (tkinter)
Начало » GUI » вернуть значение в переменную из entry (tkinter)
1
bad_playa
подскажите как вернуть значение из поля entry в переменную, скажем глобальную
интересует как использовать precision за пределами метода getPrecision()

def getPrecision():
      precision = float(entry.get())
entry = Entry(panelFrame, text = '')
entry.grid()        
askPrecisionBtn = Button(panelFrame, text = 'Go', command = getPrecision())
askPrecisionBtn.grid()
FishHook
Не надо никаких глобальных переменных.
ГУИ программы всеми разумными людьми пишутся на основе ООП. Освойте уже эту замечательную технологию и не будет таких удивительных вопросов.
bad_playa
FishHook
Не надо никаких глобальных переменных.ГУИ программы всеми разумными людьми пишутся на основе ООП. Освойте уже эту замечательную технологию и не будет таких удивительных вопросов.
отличное замечание. Скиньте, пожалуйста, ссылку на тему для неразумных людей, вроде меня чтоб я мог выяснить ответ на мой вопрос. Или получить информацию как это сделать иначе.
FishHook
bad_playa
А что конкретно у вас не получается нагуглить: глобальные переменные в питоне или ООП в питоне?
Я нагуглю за вас, не вопрос, вы только конкретизируйте, какую конкретно информацию вы не нашли в интернете.
bad_playa
я не могу найти информацию, как вернуть precision из метода, который вызывается по нажатию кнопки.
все что мне нужно нажать на кнопку, и сохранить в переменную, которую я могу использовать дальше.
как мне это сделать, где почитать?
FishHook
ладно, пусть будет так

precision = None
def getPrecision():
      global precision
      precision = float(entry.get())
4kpt_IV
Пробросьте через lambda нужную переменную.
FishHook все правильно говорит. Глобальные переменные зло!!!

def getPrecision(my_data):
      my_data[0] = float(entry.get())
my_data = []
entry = Entry(panelFrame, text = '')
entry.grid()        
askPrecisionBtn = Button(panelFrame, text = 'Go', command = lambda: getPrecision(my_data))
askPrecisionBtn.grid()

Но это хоть и по-питонячьи, но все же не по tkinter
В tkinter есть специальные Var переменные, для такой работы.

В этом случае код будет выглядеть так:

def getPrecision():
    print(my_data.get())
my_data = StringVar()
entry = Entry(panelFrame, text = '', textvariable=my_data)
entry.grid()        
askPrecisionBtn = Button(panelFrame, text='Go', command=getPrecision)
askPrecisionBtn.grid()

P.S. По-свободе почитайте про PEP8
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