2014-02-11 6 views
0

級別:初級添加許多scrolledpanels一個scrolledPanel在wxPython中

我開發的Windows 7操作系統與wxPython的一個GUI。 Python版本是2.7的廣告wxPython的版本是3。我的GUI看起來如下面的圖所示:

Screenshot

我想花一些時間來解釋我想實現。正如您可能從第一張圖像中注意到的那樣,我的GUI中有4個不同的滾動面板,名稱爲panel-1 to panel-4。垂直BoxSizer應用於每個滾動面板。作爲回報的每個滾動面板都包含一個boxsizer和一個水平的wx.StaticLine。使用水平線的原因是爲了讓用戶更容易讀取特定序列號的值。 (對於特定的序列號,用戶可以輕鬆讀取不同面板中的所有值。)最後,所有這四個滾動面板都將添加到名爲panelSizer的水平BoxSizer中。目前滾動的面板單獨滾動。一個重要的事情是所有的滾動面板每次都會包含相同數量的組件/元素。

問題:

我需要的方式,這樣我可以把這些滾動面板添加到一個分級機或以這樣的方式在面板上只有一個在右側的滾動條,當我所有的滾動此滾動滾動的面板(面板-1到面板-4)應該同時滾動。我想有這樣的事情:image 2

我覺得這個選項在GUI方面更好。我已經嘗試過幾個類似的東西,我創建了一個名爲main panel的新滾動面板,並使用SetSizer()函數將BoxSizer命名爲panelSizer(它包含面板-1到面板-4的所有面板),但滾動條不會「 t出現,即使單個滾動條也不會出現!另外,我檢查了面板中有足夠的組件,以便出現滾動條。我嘗試將四個滾動面板更改爲簡單面板,然後添加到panelSizer,然後將sizer應用於main panel,但沒有解決問題。

任何人都可以提示我的方法出了什麼問題嗎?任何建議。感謝您的時間。

+0

將4個面板添加到一個滾動面板中的方法應該可行。嘗試將滾動的面板調整爲較小的窗口以查看滾動條是否出現。 –

+0

@Jerry_Y,它不工作不幸。我嘗試調整大小。我在面板1中有12個組件,但只有9個正在顯示。但不顯示滾動條。 –

+0

如果你可以發佈你的代碼會更好。 –

回答

0

嗯,我自己找到了解決方案,所以就這樣了。

我必須禁用面板-1到面板-4的滾動。這可以通過不使用SetupScrolling()方法來完成。另外,滾動應在mainPanel中啓用這樣的:

mainPanel.SetupScrolling() 

舉個例子:假設你有兩個滾動面板命名爲panel1panel2。現在,如果要將這兩個滾動面板添加到名爲mainPanel的其他滾動面板,那麼您首先創建這兩個滾動面板,然後禁用它們的滾動,然後將這兩個面板添加兩個sizer,然後將此sizer應用於mainPanel。 代碼示例:

mainPanel = wx.lib.scrolledpanel.ScrolledPanel(self, -1,style=wx.SIMPLE_BORDER) 
mainPanel.SetupScrolling() 
panel1 = wx.lib.scrolledpanel.ScrolledPanel(mainPanel, -1, style=wx.SIMPLE_BORDER) 
panel2 = wx.lib.scrolledpanel.ScrolledPanel(mainPanel, -1, style=wx.SIMPLE_BORDER) 
panelSizer = wx.BoxSizer(wx.HORIZONTAL) 
panelSizer.Add(panel1) 
panelSizer.Add(panel2) 
mainPanel.SetSizer(panelSizer)