2017-03-05 95 views
0

我有以下問題:如何添加一個按鈕到wx.MenuBar()?

wx.Frame()在全屏模式下丟失系統菜單和關閉和最小化按鈕。至少在Windows上它確實如此。

這通常是可取的,但不幸的是,我的應用程序的用戶將會非常愚蠢,並且期望他們使用菜單來執行這兩個操作將會太多。 我必須保持全屏,因爲我需要很多空間和每個像素的控制。因此,我將不得不手動添加這兩個按鈕。我打算使用位圖按鈕,但我不確定如何解決問題。 由於沒有標題,菜單欄位於框架的頂部。因此,我是否繼承了wx.MenuBar()並在那裏做了一些愚蠢的事情,或者我是否強制將它放在按鈕上?操作系統甚至會讓我對菜單欄發脾氣?

我希望有人以前做過類似的事情,這樣我就不必在霧中徘徊。簡短的例子,歡迎。如果他們是跨平臺友好的,那麼他們是非常受歡迎的。

+0

菜單欄專門用於菜單,我認爲你正在尋找'wx.ToolBar'。請參閱'wx.Frame.CreateToolBar()'https://wxpython.org/Phoenix/docs/html/wx.Frame.html#wx.Frame.CreateToolBar –

+0

我不知何故知道這一點。 :D 1.我沒有水平工具欄和2的地方。哦,請,那個表情告訴我。我需要它看起來好像窗口在右上角有標準控件。 – Dalen

+0

工具欄可能是垂直的!但是,在Linux上,系統菜單和關閉和最小化按鈕不會在全屏模式下消失,所以我無法複製您的環境,因爲我拒絕在機器上放置「窗口」。 –

回答

0
import wx 

class NoCaptionFrame(wx.Frame): 
    def __init__(self): 
     no_caption = wx.RESIZE_BORDER 
     wx.Frame.__init__(self, None, title="No Caption", style=no_caption) 
     toolbar = self.CreateToolBar(style=wx.TB_VERTICAL) 
     quittool1 = toolbar.AddLabelTool(wx.ID_ANY, 'Quit', wx.Bitmap('exit.png')) 
     quittool2 = toolbar.AddLabelTool(wx.ID_ANY, 'Quit', wx.Bitmap('exit.png')) 
     quittool3 = toolbar.AddLabelTool(wx.ID_ANY, 'Quit', wx.Bitmap('exit.png')) 
     toolbar.Realize() 
     menubar=wx.MenuBar() 
     first=wx.Menu() 
     second=wx.Menu() 
     first.Append(1,"New Window","This is a new window") 
     first.Append(2,"Open...","Open A New Window") 
     menubar.Append(first,"File") 
     menubar.Append(second,"Edit") 
     self.SetMenuBar(menubar) 
     self.Bind(wx.EVT_TOOL, self.OnQuit, quittool1) 
     self.Show() 

    def OnQuit(self, e): 
     self.Close() 

if __name__ == "__main__": 
    app = wx.App() 
    frame = NoCaptionFrame() 
    app.MainLoop() 
+0

是的,但你沒有菜單欄。只有一個工具欄。現在,如果你有一個,那麼事情開始變得討厭。例如,我剛剛意識到菜單欄不被視爲框架內。座標系不包含它,所以沒有希望只是推動它。無論其方向如何,工具欄都位於菜單欄級別下方。 – Dalen

+0

增加了一個菜單欄,至少在Linux下它看起來很好。因此,無論是Windows正在做一些完全不同的事情,我不瞭解您的問題,或者您沒有充分解釋您的問題。不管你對空間的限制如何,控制器會在某個地方吃掉空間。 –

相關問題