2010-03-26 2 views
2

Когда вы tkSimpleDialog.askinteger, программа останавливается и ждет ввода пользователем. Каковы основы написания моего собственного метода, который будет иметь тот же эффект? Я хочу сделать такое же диалоговое окно, я просто хочу получить дополнительную информацию. Проблема, с которой я столкнулась, заключается в том, что когда я открываю новое окно с помощью Tk.Toplevel, программа не ждет ввода пользователем способа tkSimpleDialog.askinteger.Как создать диалоговое окно, ожидающее ответа пользователя?

ответ

0

Прежде всего, если вы можете использовать какую-либо другую систему виджетов, например PyGtk или PyQt, вам следует серьезно ее рассмотреть. Tkinter является древним, а новые библиотеки обладают гораздо большей функциональностью (читайте: больше вещей, которые вам не нужно изобретать). Я использовал PyGtk и люблю его гораздо больше, чем Tkinter, который я использовал в старом Python 1.x днях.

Тем не менее, в Tkinter, что вам нужно сделать это:

widget.wait_window(window) 

Это связывает цикл событий ожидания для пользователя, чтобы закрыть диалоговое окно.

Ссылка: http://www.pythonware.com/library/tkinter/introduction/dialog-windows.htm

+0

DeSimone @ Mike: тк "может умереть когда-нибудь"? Какие у вас есть доказательства? Это зрелый, надежный, активно разработанный инструментарий. –

+0

Извините, исправлено. С моей стороны было желаемое за действительное; просто посмотрел на него и заметил: «CameronLaird называет ежегодное решение сохранить TkInter» одной из второстепенных традиций мира Python »(http://wiki.python.org/moin/TkInter)». Я все еще чувствую, что библиотеки на основе Gtk или Qt лучше разрабатывать. В те времена, когда у меня была программа Tkinter, она работала очень медленно, из-за того, что все было необходимо преобразовать в строки для Tcl. –

+2

yes PyQt/wxPython и т. Д. Хороши для продукта, но для небольших скриптов, где вы не хотите устанавливать ничего лишнего на целевой машине Tkinter достаточно хорошо –

Смежные вопросы