2010-03-26 54 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

@Mike德西蒙:TK 「可能有一天會死」?你有什麼證據呢?它是一個成熟,強大,積極開發的工具包。 – 2010-03-27 14:42:39

+0

對不起,修正了。對我而言,這是一廂情願的想法;只是查了一下並注意到「CameronLaird稱每年決定讓TkInter成爲Python世界的一個小傳統。」(http://wiki.python.org/moin/TkInter)「。我仍然覺得基於Gtk或Qt的庫會更好地發展。那些時候我得到了一個Tkinter程序來運行,它運行得很慢,因爲所有東西都必須轉換爲Tcl的字符串。 – 2010-03-27 16:21:27

+2

是的PyQt/wxPython等是一個產品的好處,但對於你不想在目標機器上額外安裝任何東西的小腳本,Tkinter已經足夠好了 – 2010-03-31 05:48:22