【问题标题】:wxpython OSX: large numbers of wx.Notebook tabs are inaccessiblewxpython OSX:大量 wx.Notebook 选项卡无法访问
【发布时间】:2013-10-11 18:43:27
【问题描述】:

使用 wxPython 为 OSX 和 Linux/X 编写 GUI,我遇到了一个问题,如果我有大量笔记本选项卡,我无法获得 wx.Dialog 或 wx。包含 wx.Notebook 的框架或 wx.Panel 展开以显示它们(wx.EXPAND 似乎没有做任何事情)

在 Linux/X 下,这不是问题,因为它会产生小箭头,让您从一个选项卡转到另一个选项卡 (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 时手动设置比例标志?
  • @MatteoD 这样做了,但没有任何效果。
  • wxPython 演示在调整大小时的行为方式是否相同?在 Windows 上,当我将其调整为太小时,箭头只会出现,我可以通过这种方式找到它们。还有你使用的是哪个 wxPython 版本?
  • @MikeDriscoll 它在调整大小时的行为确实是一样的,唉。我在 wxPython 2.8.12.1;没有机会尝试更高版本。 (另外,抱歉耽搁了;周末不在我的 OSX 电脑上:D)
  • 我会询问 wxPython 用户组或 wxPython-mac 用户组或两者。

标签: python macos wxpython


【解决方案1】:

进一步的研究表明,这是 OSX 中的原生小部件限制。致quote Robin Dunn

本机选项卡控件不支持它。显然是用户界面 Apple 的设计师认为不应该超过一半 任何布局上的十几个选项卡,如果需要更多页面,那么那里 用户界面有问题。

幸运的是,同样的回复指出了 Listbook(我不知道)和其他相关控件的存在。通过a very helpful blog entry on those controls 之后,我最终选择了Choicebook,它非常适合我在OSX 上的用途。

希望这可以帮助遇到同样问题的其他人!

【讨论】:

    猜你喜欢
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    相关资源
    最近更新 更多