2012-02-16 84 views
0

是否有任何東西可以用來增加wxWidgets/wxPython的窗口邊緣或組件間的空間?我想要一些東西來防止組件被擠壓到窗口邊框或者彼此之間,類似於Java Swing的EmptyBorder或Insets所能做的。 (我知道你可以設置一些sizer的水平/垂直間隔,但我想要更靈活的東西。)wxWidgets的間距/空白邊框

+0

哎呀,我想我應該看着API文檔(或教程)更貼切一點。我仍然希望有一種方法可以爲對象的每一面指定不同的間距,而不必使用單獨的間隔符。 – ecraig12345 2012-02-18 06:45:18

+0

爲了方便以後任何人查看這個問題,這裏是[Sizer.Add的文檔](http://wxpython.org/docs/api/wx.Sizer-class.html#Add)。 – ecraig12345 2012-02-18 06:47:01

回答

1

請參閱Sizer的Add方法中的border參數。你可以使用flag參數來告訴它在哪裏放置邊框,比如wx.ALL,wx.RIGHT,wx.LEFT,wx.TOP等。

這可以用來放置小部件周圍的空間和小部件。有時您可能想使用sizer的AddSpacer來添加空間。或者你可以做這樣的事情:

mySizer.Add((20, 100)) 

這樣做是在y軸上的兩個小部件之間放100個像素。你可能需要玩一下,才能以你想要的方式獲得它。

又見http://wiki.wxpython.org/GridSizerTutorialhttp://zetcode.com/wxpython/layout/

1

wxWidgets提供的sizers非常靈活。你確定你已經探索過他們有能力的一切嗎?很難想象你可能需要什麼,他們無法處理。請準確描述您需要的內容併發布您迄今爲止嘗試過的代碼。

下面是一個例子:

sizer->Add(new wxButton(this, -1, "Button with 20 pixel border all round"), 
     0, wxALL, 20); 

這裏是更多分級器選擇的演示。 http://neume.sourceforge.net/sizerdemo/

如果您確實無法使用sizer來實現您所需的功能,那麼您可以通過將位置傳遞給窗口構件來明確地定位每個窗口小部件。

wxPoint button_position(50,50); // position button 50 pixel down and to right of top left 
new wxButton(this, -1, "Button", button_position)