使用wxPython爲OSX和Linux/X編寫GUI,我遇到了一個問題,如果我有大量的筆記本選項卡,我無法得到包含wx.Notebook的wx.Dialog或wx.Frame或wx.Panel以展開全部內容(wx.EXPAND不會顯示任何內容)wxpython OSX:無法訪問大量的wx.Notebook標籤
在Linux/X下,此isn這不是一個問題,因爲它會產生小箭頭,讓您從標籤頁到標籤頁(see illustration here)。但是在OSX下,我的用戶被搞砸了,因爲這些標籤從面板的邊緣被拉出,並且完全無法訪問(illustration)。用於創建上面的例子
示例代碼:
import wx
class TempFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY, "Temp Frame")
self.notebook = wx.Notebook(self, id=wx.ID_ANY, style=wx.BK_DEFAULT)
for num in range(0, 11):
notepanel = TempPanel(self.notebook, num)
self.notebook.AddPage(notepanel, str(num))
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.notebook, 0, wx.ALL | wx.EXPAND, 5)
self.SetSizer(sizer)
self.Fit()
class TempPanel(wx.Panel):
def __init__(self, parent, num):
wx.Panel.__init__(self, parent, wx.ID_ANY)
self.title = wx.StaticText(self, wx.ID_ANY, str(num))
self.test_list = ["One", "One", "Two", "Three", "Five", "Eight"]
self.test_choice = wx.Choice(self, wx.ID_ANY, choices=self.test_list)
sizer = wx.BoxSizer(wx.HORIZONTAL)
sizer.Add(self.title, 0, wx.ALL | wx.EXPAND, 5)
sizer.Add(self.test_choice, 0, wx.ALL | wx.EXPAND, 5)
self.SetSizer(sizer)
if __name__ == '__main__':
app = wx.PySimpleApp()
frame = TempFrame()
frame.Show(True)
app.MainLoop()
有沒有辦法告訴wxPython的,使有足夠的空間用於所有筆記本選項卡的? 謝謝!
您是否嘗試過在將面板添加到sizer時手動設置比例標誌? – darmat
@MatteoD這樣做,並沒有效果。 –
wxPython演示在調整大小時的行爲方式是否相同?在Windows中,當我調整它太小時,箭頭就出現了,我可以用這種方式找到它們。你還使用哪個wxPython版本? –