Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 25, 2008 22:21:52

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter: common-диалоги

Кто-нибудь использует сабж? Столкнулся с примером, который меня неприятно удивил:

#!/usr/bin/python
# -*- coding: utf-8 -*-
from Tkinter import *
from tkMessageBox import *

def b():
if askyesno(u'Вопрос', u'Нажмите "Да" или "Нет".'):
showwarning(u'Сообщение', u'Вы нажали "Да."')
else:
showwarning(u'Сообщение', u'Вы нажали "Нет."')

root = Tk()
Button(root, text = u'Нажми меня', command = b).pack()
root.mainloop()
1. В книге Марка Лутца “Программирование на Python” (оргинал - O'REILLY) написано, что “все стандартные диалоги являются модальными”. Однако получается, что это полуправда. В приведённом примере вы можете переключиться в главное окно и закрыть его крестиком. В результате на консоль выпадет порция ругани “TclError: can't invoke ”grab“ command: application has been destroyed”.
2. Диалоги askyesno и showwarning позволяют изменять размер своих окон, что имхо, крайне некрасиво.

Я что-то не понимаю, или Tkinter реально так отстойна? Если первое, то что именно?



Офлайн

#2 Окт. 26, 2008 08:41:45

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Tkinter: common-диалоги

Это под линуксом так? Под виндой все нормально..



Офлайн

#3 Окт. 26, 2008 10:54:18

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter: common-диалоги

igor.kaist
Это под линуксом так? Под виндой все нормально..
Да, под GNOME так.



Офлайн

#4 Окт. 26, 2008 16:09:29

gmorgunov
От:
Зарегистрирован: 2008-10-15
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter: common-диалоги

Привет
Проверил под KDE.

В результате на консоль выпадет порция ругани “TclError: can't invoke ”grab“ command: application has been destroyed”.
При закрытии главного окна(<нажми меня>)/ при открытом <нажмите да или нет>/ - приложение виснет. Не помогает и Ctrl+c, только закрытие консоли.
Получается это не полуправда, а неправда Лутца( под Linux).
Такое приложение заказчик не примет.(имхо)

с уважением gmorgunov



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version