2013-04-30 57 views
1

我有問題。現在我有一個根窗口和一些「TopLevel's」。但每次由「tkmessagebox」觸發的任何窗口都會執行時,會出現消息框,並將根窗口發送到前面。但我希望它留在當前的窗口。Tkinter,tkmessagebox不斷髮送我到根

現在,我查看了文檔,無法找到任何可以使用「.config」來防止和/或禁用此功能的內容。

+0

有點關係:http://stackoverflow.com/a/1407700/1142167 – 2013-04-30 19:21:09

+0

無法擺脫它。只是不要讓它跳到其他窗口的前面! – madprogramer 2013-04-30 19:25:14

+0

你可以發佈你的代碼嗎?我無法複製該效果。我有另一個Toplevel,當我打開一個'tkMessageBox'時,它停留在根窗口的前面。 – 2013-04-30 19:37:09

回答

2

當消息框被取消時,焦點將返回到父窗口。默認情況下,這是根窗口。通常,您需要將其設置爲導致消息框出現的按鈕或頂級窗口。

要設置父級,請在創建對話框時使用parent屬性。例如:

... 
tkMessageBox.showwarning("Danger, Will Robinson!", 
         parent=self.destruct_button) 
... 

有關更多信息,請參見http://effbot.org/tkinterbook/tkinter-standard-dialogs.htm

+0

現在,那究竟是怎麼回事? – madprogramer 2013-04-30 20:10:55

+0

@madprogramer:我已經更新了我的答案以顯示一個示例 – 2013-04-30 20:43:38