Форум программистов, компьютерный форум, киберфорум
Python: Tkinter
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
1 / 1 / 0
Регистрация: 27.03.2020
Сообщений: 18

Функция ничего не возвращает

18.11.2020, 22:45. Показов 1230. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, помогите разобраться с кодом.
Хочу написать авторегер. При заходе на сайт, должен требовать от пользователя номер и смс.

На просторах интернета нашел такой код, который должен возвращать то, что вписал пользователь в поле "entry"

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def tkinter_input(prompt=""):
    root = Tk()
    Label(root, text=prompt).pack()
    root.attributes("-topmost", True)
    entry = Entry(root)
    entry.pack()
    result = None
 
    def callback(event):
        nonlocal result
        result = entry.get()
        root.destroy()
        return result
 
    entry.bind("<Return>", callback)
    root.mainloop()
    return result
Но он ничего не возвращает...
Путем тыка, я понял, что он не возвращает только в моем случае((( А у меня так:
Я создал интерфейс, нажал кнопку "начать", он открывает сайт( Интерфейс все еще активный) и обращается к функции tkinter_input. НО, а если обратиться из другого файла, без создания еще одного интерфейса, то все работает.
Подскажите, как мне быть?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.11.2020, 22:45
Ответы с готовыми решениями:

Функция не возвращает ничего
Накидал код по ходьбе из консоли по папкам import os, sys from pathlib import Path class clear: def __call__(self): ...

Почему функция ничего не возвращает?
В общем пишу временный кастыль, который поможет преобразовать название страницы в нужный мне вид для определенных страниц. Функция -...

Почему функция ничего не возвращает?
var = list(map(int, input().split())) def func(var): if 4 &lt;= var and var &gt;= 20 - var: for x in range(1, 30): ...

3
 Аватар для kapbepucm
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,656
19.11.2020, 15:30
Цитата Сообщение от naripi6291 Посмотреть сообщение
Я создал интерфейс, нажал кнопку "начать", он открывает сайт( Интерфейс все еще активный) и обращается к функции tkinter_input.
у вас уже есть корневое окно и вы его ещё раз создаёте root = Tk()
0
1 / 1 / 0
Регистрация: 27.03.2020
Сообщений: 18
19.11.2020, 19:22  [ТС]
Я убрал из кода все, оставил кнопку. При нажатии я хочу распечатать то, что ввел пользователь, но функция все равно ничего не возвращает(((. Если убрать "self.root = Toplevel()", то она работает как надо, только открывается не новое окно, а лабел появляется в старом. Мне же нужно, чтоб открылось новое окно, пользователь туда ввел данные, окно закрылось и данные которые ввел пользователь сохранились в переменной
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from tkinter import *
from tkinter import messagebox
 
 
class MainApp():
    def __init__(self):
        self.root = Tk()
 
    def run(self):
        self.widgets()
        self.root.mainloop()
 
    def widgets(self):
        self.but_send = Button(self.root, text='НАЧАТЬ', command=self.sender)
        self.but_send.grid()
 
    def sender(self):
        print(self.tkinter_input('rfrrf'))
 
    def error_sender(self, text):
        messagebox.showerror('Ошибка', f'{text}')
 
    def tkinter_input(self, prompt=""):
        self.root = Toplevel()
        Label(self.root, text=prompt).grid()
        self.root.attributes("-topmost", True)
        entry = Entry(self.root)
        entry.grid()
        result = None
 
        def callback(event):
            nonlocal result
            result = entry.get()
            self.root.destroy()
            return result
 
        entry.bind("<Return>", callback)
        self.root.mainloop()
        return result
 
 
if __name__ == '__main__':
    window = MainApp()
    window.run()
0
 Аватар для kapbepucm
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,656
20.11.2020, 10:28
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from tkinter import *
from tkinter import messagebox
 
class MainApp():
    def __init__(self):
        self.root = Tk()
 
    def run(self):
        self.widgets()
        self.root.mainloop()
 
    def widgets(self):
        self.but_send = Button(self.root, text='НАЧАТЬ', command=self.sender)
        self.but_send.grid()
 
    def sender(self):
        print(self.tkinter_input('rfrrf'))
 
    def error_sender(self, text):
        messagebox.showerror('Ошибка', f'{text}')
 
    def tkinter_input(self, prompt=""):
        dialog = Toplevel()
        Label(dialog, text=prompt).grid()
        dialog.attributes("-topmost", True)
        entry = Entry(dialog)
        entry.grid()
        result = None
 
        def callback(event):
            nonlocal result
            result = entry.get()
            dialog.destroy()
 
        entry.bind("<Return>", callback)
        self.root.wait_window(dialog)
        return result
 
if __name__ == '__main__':
    window = MainApp()
    window.run()
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.11.2020, 10:28
Помогаю со студенческими работами здесь

Процедуры и функции: Почему функция ничего не возвращает?
Есть функция, высчитавающая факториал из числа. Число вводится с клавиатуры, затем результат выводится на экран. Вопрос собственно в том,...

Как выглядит функция, которая ничего не принимает и возвращает тип int?
У меня возник следующий вопрос при изучении функции: как выглядит функция, которая ничего не принимает и возвращает тип int?

Передача динамического массива из функции в функции / Функция ничего не возвращает
Здравствуйте! Хочу узнать, правильно ли я передал динамический массив в другую функцию, и почему функция ArithmeticMean ничего не...

Как вернуть в запросе значение по умолчанию, если SELECT возвращает NULL или ничего не возвращает?
Добрый день! Например я хочу чтобы донное выражение возвращало мне 0 или скажем 1, если результатом выражения rating вернется NULL: ...

Как называется функция которая ничего не принимает и ничего не отдаёт?
Как называется функция которая не чего не принимает и не чего не отдаёт? Пожалуйста приведите пример то есть как она выглядит или может...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru