Уведомления

Группа в Telegram: @pythonsu

#1 Май 19, 2015 14:05:56

Romeruk
Зарегистрирован: 2015-05-19
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Python tkinter (Вывод значения в label )

Интенесует вопрос как сделать так чтобы нельзя было закрыть 1 окно пока открыто 2
Сам код :

Отредактировано Romeruk (Май 25, 2015 21:10:39)

Офлайн

#2 Май 19, 2015 14:14:59

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Python tkinter (Вывод значения в label )

Тут есть несколько вариантов.
1. Можно явно передать label для вставки в них значений.
2. Внутри window можно получить root и найти на нем нужные Вам label.
3. Переписать все в ООП (пока рановато, но вариант должен был назвать).
4. Сделать root глобальной переменной (настоятельно не рекомендую).
Выбирайте любой понравившийся…

P.S. По коду достаточно много ошибок. Перечислю основные из них:
1. Никогда не делайте from tkinter import*
2. Создавать отдельную функцию только для закрытия окна не есть хорошо.
3. Названия виджетов старайтесь сделать информативнее.
4. Нельзя одновременно использовать разные менеджеры геометрии объектов (разделять их можно применяя frame).
5. Ну и про if __name__ == “__main__” все же нужно прочитать.
6. PEP8 куда уж без него

P.S.S. Вопросы по Tkinter желательно задавать в разделе GUI.

Отредактировано 4kpt_III (Май 19, 2015 14:16:12)

Офлайн

#3 Май 19, 2015 14:17:51

Romeruk
Зарегистрирован: 2015-05-19
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Python tkinter (Вывод значения в label )

4kpt_III
Тут есть несколько вариантов.1. Можно явно передать label для вставки в них значений.2. Внутри window можно получить root и найти на нем нужные Вам label.3. Переписать все в ООП (пока рановато, но вариант должен был назвать).4. Сделать root глобальной переменной (настоятельно не рекомендую).Выбирайте любой понравившийся…P.S. По коду достаточно много ошибок. Перечислю основные из них:1. Никогда не делайте from tkinter import*2. Создавать отдельную функцию для закрытия окна не есть хорошо.3. Названия виджетов старайтесь сделать информативнее.4. Нельзя одновременно использовать разные менеджеры геометрии объектов (разделять их можно применяя frame).5. Ну и про if __name__ == “__main__” все же нужно прочитать.P.S.S. Вопросы по Tkinter желательно задавать в разделе GUI.
Спасибо
Да только что дошло и самому как вывести значения а и б в метку окна root
Теперь интересует как сделать так чтобы нельзя было закрыть 1 окно пока открыто 2

Отредактировано Romeruk (Май 19, 2015 14:18:08)

Офлайн

#4 Май 19, 2015 14:27:16

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Python tkinter (Вывод значения в label )

Тут тоже есть несколько вариантов.
1. Самый простой. Смотрите в сторону .protocol(“WM_DELETE_WINDOW”, callback_function)
2. Метод trancient(parent).

Опять же. Выбирайте любой

Офлайн

#5 Май 19, 2015 14:29:30

Romeruk
Зарегистрирован: 2015-05-19
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Python tkinter (Вывод значения в label )

4kpt_III
Тут тоже есть несколько вариантов.1. Самый простой. Смотрите в сторону .protocol(“WM_DELETE_WINDOW”, callback_function)2. Метод trancient(parent).Опять же. Выбирайте любой
Хорошо спасибо

Офлайн

#6 Май 19, 2015 14:44:54

Romeruk
Зарегистрирован: 2015-05-19
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Python tkinter (Вывод значения в label )



теперь когда ввести допустим 1111 , а потом 1 не получается вот такое

Отредактировано Romeruk (Май 25, 2015 21:11:31)

Офлайн

#7 Май 19, 2015 14:52:17

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Python tkinter (Вывод значения в label )

Т.е. вы внутри вызова toplevel задаете два label для корневого окна?

Офлайн

#8 Май 19, 2015 14:55:21

Romeruk
Зарегистрирован: 2015-05-19
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Python tkinter (Вывод значения в label )

4kpt_III
Т.е. вы внутри вызова toplevel задаете два label для корневого окна?
Получается что да

Отредактировано Romeruk (Май 25, 2015 21:12:37)

Офлайн

#9 Май 19, 2015 15:52:13

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Python tkinter (Вывод значения в label )

Это неправильно. И кони и люди. Все смешано. Лучше явно передать через lambda, т.е.

button.bind('<Button-1>', lambda event: window(event, label1, label2))

И соответственно в обработчике принять:

def window(event, label1, label2):
    # create toplevel and all widgets
    label1["text"] = float(input.get())

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version