2010-12-01 124 views
1

我已經在使用Tkinter菜單窗口小部件的python應用程序中實現了一個信息彈出窗口。我在根窗口的畫布上有一個Text小部件。我創建了一個以root作爲其父項的Menu小部件。當我檢測到鼠標懸停在文本小部件上時,我會用menuWidget.post()發佈彈出菜單。當我從文本小部件中獲取離開事件時,我的意圖是通過調用menuWidget.unpost()使彈出消失,只有彈出菜單不會消失,直到我單擊文本小部件之外的其他位置。將鼠標懸停在Tkinter彈出框上

首先,這是一個理智的方法來實現信息彈出?誰能告訴我爲什麼彈出菜單不會消失?

回答

2

這不是做信息彈出的正確方法。在Mac和Windows機器菜單上是本地控制。因此,unpost命令不起作用,因爲tk將控制權交給系統事件循環,以獲得特定於平臺的行爲。

你想要的是使用overrideredirect標誌設置的上層窗口。這使您可以在任何地方顯示無邊框窗口。這個好處是,你不限於簡單的文字 - 你可以把任何你想要的東西放在頂層 - 另一個文本小部件,畫布,按鈕等。

+0

明白了Bryan。編碼並使用TopLevel。然而,錯過了投影效果。 – 2010-12-01 22:06:40