Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 20.09.2019
Сообщений: 14
1

Не могу извлечь значение из виджета Entry

11.01.2021, 00:45. Просмотров 1755. Ответов 2
Метки нет (Все метки)

Пытаюсь написать программу с графическим интерфейсом модуля Tkinter. В простом виде при использовании стандартных функция все получается. Но хочу написать по парадигме ООП с использованием модулей. Столкнулся с проблемой, что не могу извлечь значения из виджетов Entry при помощи функции которая вызывается кнопкой Button. Вернее извлечь могу, но извлекаются лишь значения которые задются по умолчанию. Я записываю в поле Entry свой текст, но при этом все равно выводится базовое значение. Если в вызов функции вставить каждый экземпляр (lambda:get_entry(entry1.get(), entry2.get())). То все работает. Но в рамках моей задумки получается слишком большой объем текста.

Python
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
from tkinter import *
 
class MyButton(Button, Frame):
    def __init__(self, master=None, text='My button', command=None):
        Button.__init__(self, master=master, text=text,
                        command=command, width=17, relief=RAISED)
        self.pack(side=LEFT, fill=Y)
 
class MyEntry(Entry):
    def __init__(self, master=None, text='First entry'):
        Entry.__init__(self, master=master)
        self.insert(0, text)
        self.pack(side=LEFT)
 
class MyFrame(Frame):
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.pack()
        entry1 = MyEntry(self)
        entry2 = MyEntry(self)
        value = (entry1.get(), entry2.get())
        button = MyButton(self,
                          command=lambda :(get_entry(value)))
        self.mainloop()
 
def get_entry(value):
    print(value)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.01.2021, 00:45
Ответы с готовыми решениями:

Использование виджета Entry
Здравствуйте, задали задачу: Напишите программу, состоящую из семи кнопок, цвета которых...

Проблема с получением текста из виджета Entry
Вот код: from Tkinter import * alp="АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ "...

Как навести мышку на x,y внутри виджета относительно 0,0 виджета (левого верхнего угла виджета)?
Как навести мышку на x,y внутри виджета относительно 0,0 этого виджета (левого верхнего угла...

Adding Entry Will Cause Text List To Exced 64k.entry Not Added
Вот такая ошибка выскакивает, понятно что идет переполнение rtitem Body, туда добавляеться куча...

2
1113 / 721 / 369
Регистрация: 12.03.2018
Сообщений: 2,127
11.01.2021, 11:04 2
Лучший ответ Сообщение было отмечено Удалов Павел как решение

Решение

value у вас константа.
Нужно каждый раз при нажатии на кнопку вызывать get:
Python
1
2
button = MyButton(
            self, command=lambda: (get_entry((entry1.get(), entry2.get()))))
Но лучше так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
class MyFrame(Frame):
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.pack()
        self.entry1 = MyEntry(self)
        self.entry2 = MyEntry(self)
        # value = (entry1.get(), entry2.get())
        button = MyButton(self, command=self.get_entry)
        self.mainloop()
 
 
    def get_entry(self):
        print(self.entry1.get(), self.entry2.get())
1
0 / 0 / 0
Регистрация: 20.09.2019
Сообщений: 14
11.01.2021, 20:51  [ТС] 3
Благодарю. Все получилось
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.01.2021, 20:51

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Ошибка с циклом Map.Entry entry:hashMap.entrySet
Пытаюсь спарсить сайт со списком и подробнее о каждом элементе. Всё делал по уроку на youtube. При...

[Tkinter] Как получить значение переменной из entry?
Tkinter как получить значение переменной из entry

Не могу взять информацию из виджета
Доброго времени суток, работая над граф. приложением в python столкнулась с проблемой, что в нем...

Не могу разобраться в настройках виджета
При настройке виджета Цены, тема Profit Lite, не получается как на демо-странице выделить одну...

Почему заголовок виджета показывается ниже чем текст виджета
Создал зону виджетов. Создал шорткод. Шорткод вставляю в текстовый виджет. Заголовок виджета...

Как добраться до виджета, который находится внутри другого виджета?
Есть QStackWidget, внутри которого на одной из страниц-виджетов находится QTabWidget....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.