2012-09-19 11 views
3

的頂部我希望我的框架始終在最前面,但我希望它是真正的頂部。我不想讓其他窗口隱藏它,即使它們也「始終在最上面」。我正在使用wx.STAY_ON_TOPwx.FRAME_FLOAT_ON_PARENT,但仍然有窗口出現在我的頂部。此外,任務欄出現在我的框架之上,而我希望它在我的框架後面。wxPython的:製作一個框架上的一切

我已經嘗試了很多事情,沒有工作,詳細here

不知道如何讓我的框架真的在上面?

+0

會使其全屏幕,然後最小化不允許足夠?您是僅針對Windows還是答案需要在Gtk和Mac上運行? –

+0

您是否希望用戶能夠訪問任務欄? –

+0

@PaulMcNett用戶不需要能夠訪問任務欄。預計該解決方案僅限於Windows。全屏不是一種選擇,因爲有些時候幀不應該是全屏。 –

回答

1

因爲他們是這樣做的,因爲它是最常見的不良影響的標準方法,你都不可能通過頻繁地重新設置最上面的標誌,以「否決」走出的最頂端位置的任何其他應用程序實現這一目標。您可以使用一個計時器來設置每x毫秒的值,或者您可以嘗試僅在窗口失去焦點時再次設置ontop標誌。設置ontop的標誌的事件有:

EVT_SET_FOCUS 
EVT_KILL_FOCUS 
+0

進展!現在我的應用程序正在與Rosetta Stone不斷鬥爭,這顯然是在做同樣的事情,不斷地把自己放在首位。這場拔河的結果是,整個屏幕閃爍,使整個電腦無法使用。我在想,解決方案可能是阻止Rosetta Stone這樣做。有沒有辦法做到這一點? –

+0

@RamRachum你可以嘗試不斷地刪除總是在Rosetta Stone的頂部標誌,但我不知道如何從Python做到這一點,我知道如何從AutoIt中完成它:http://www.autoitscript.com /autoit3/docs/functions/WinSetOnTop.htm 但是就像你已經說了,這將繼續成爲一場拉鋸戰,我不認爲你實際上可以使羅塞塔石碑沒收。 – zeebonk

+0

太棒了!我使用AHK來創建一個腳本,使活動應用程序不總是在頂部,我只是手動在Rosetta Stone上使用它,並且它可以工作。現在我的應用程序在Rosetta Stone之上。 –

0

嘗試使用這樣的:

wx.Frame.SetFocus() 
相關問題