2012-08-03 73 views
2

此代碼:Captionless wxPython的窗口隱藏任務欄

import wx 

app = wx.App() 
frame = wx.Frame(None, style = wx.DEFAULT_FRAME_STYLE & ~wx.CAPTION) 
frame.Maximize() 
frame.Show() 
app.MainLoop() 

生產覆蓋整個屏幕,包括我的任務欄的框架。有沒有辦法讓它只佔用不在任務欄上的屏幕?

  • 操作系統:Windows XP

  • 的Python:2.7.3

  • 的wxPython:2.9.3.1
+0

我想你可以留下的窗口標題,但使標題欄和邊框寬度爲零做到這一點。即使使用直接的Windows API調用,這也會很棘手,但不知道如何在wx中執行它。 – 2012-08-06 16:15:49

+0

@MarkRansom,你能指點我如何在Windows API中做什麼?我已經在這個項目的擴展模塊中使用了一些C++,所以我可能能夠做到這一點。 – 2012-08-06 17:23:36

+0

對不起,但我不完全確定 - 這將涉及我的一些實驗。我可能從WM_NCCALCSIZE或WM_NCHITTEST開始。 – 2012-08-06 17:45:47

回答

2

從我所看到的,我會說不,你可以」用最大化方法做。你也許可以通過獲取屏幕大小並將框架的抓取設置爲減去任務欄的空間來僞造它。您可能需要找到一種方法來獲取任務欄的位置,因爲有些人不會將其置於底部。

+0

+1 ...「有些人不會把它放在底部」。我是其中的一員。 – 2012-08-06 16:43:40

+0

我知道至少有一個人把它放在左邊,而另一個人則喜歡它在上面。 – 2012-08-06 17:27:55

+1

因爲運行我的應用程序的平板電腦可能也有屏幕鍵盤,所以擔心放置在我的情況中更爲重要。我希望有一種方法可以讓Windows處理它。 – 2012-08-06 17:30:20

0

爲未來的人尋找。嘗試使用ShowFullScreen(真)

我是新來的WX,但試圖利用self.ShowFullScreen(True)還是frame.ShowFullScreen(真)

+0

在我的情況下,我想任務欄保持不動。我想你會失去全屏。 – 2014-07-19 04:12:05

1

獲得不帶任務欄的工作區域的位置和大小:

c_x, c_y, c_w, c_h = wx.ClientDisplayRect() 

設置POS和大小:

frame = wx.Frame(None, pos=(c_x, c_y), size=(c_w, c_h), 
         style=wx.DEFAULT_FRAME_STYLE & ~wx.CAPTION & ~wx.RESIZE_BORDER) 
+0

這爲我工作 – 2016-06-06 20:25:35

相關問題