首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清单簿中的WxPython BoxSizer

清单簿中的WxPython BoxSizer
EN

Stack Overflow用户
提问于 2018-04-21 04:38:53
回答 1查看 138关注 0票数 0

我正在尝试使用wx.Listbook来实现多页设置窗口。我把清单簿做得很好,但是当我开始向页面添加条目时,我遇到了一个问题。这些项目是互相显示的,所以不可能看到我想要展示的一切。

代码语言:javascript
复制
    self.global_settings_frame = wx.Frame(parent=self, title="Global Settings", name="Global Settings")
    self.global_settings_listbook = wx.Listbook(parent=self.global_settings_frame, style=wx.LB_LEFT)
    self.global_settings_file_window = wx.Panel(parent=self.global_settings_listbook)
    self.global_settings_file_box = wx.BoxSizer(orient=wx.VERTICAL)
    self.show_full_pathname_checkbox = wx.CheckBox(self.global_settings_file_window, label="Show full pathname")
    self.global_settings_file_box.Add(self.show_full_pathname_checkbox, proportion=1)
    self.global_default_extension = wx.TextCtrl(self.global_settings_file_window)
    self.global_settings_file_box.Add(self.global_default_extension, proportion=1)

    self.global_settings_token_window = wx.Panel(parent=self.global_settings_listbook)

    self.global_settings_listbook.InsertPage(0, self.global_settings_file_window, "Files")
    self.global_settings_listbook.InsertPage(1, self.global_settings_token_window, "Token Defnition")
    self.global_settings_frame.Show()

当我注释掉第二个元素时,未注释的部分工作正常:

代码语言:javascript
复制
    self.global_settings_frame = wx.Frame(parent=self, title="Global Settings", name="Global Settings")
    self.global_settings_listbook = wx.Listbook(parent=self.global_settings_frame, style=wx.LB_LEFT)
    self.global_settings_file_window = wx.Panel(parent=self.global_settings_listbook)
    self.global_settings_file_box = wx.BoxSizer(orient=wx.VERTICAL)
    self.show_full_pathname_checkbox = wx.CheckBox(self.global_settings_file_window, label="Show full pathname")
    self.global_settings_file_box.Add(self.show_full_pathname_checkbox, proportion=1)
    self.global_default_extension = wx.TextCtrl(self.global_settings_file_window)
    self.global_settings_file_box.Add(self.global_default_extension, proportion=1)

    self.global_settings_token_window = wx.Panel(parent=self.global_settings_listbook)

    self.global_settings_listbook.InsertPage(0, self.global_settings_file_window, "Files")
    self.global_settings_listbook.InsertPage(1, self.global_settings_token_window, "Token Defnition")
    self.global_settings_frame.Show()

但是我认为BoxSizer不能正常工作,因为当我注释掉前面的一行(将CheckBox添加到BoxSizer)时,显示是相同的。

我尝试过对每个元素使用不同的面板,然后将这些面板放到BoxSizer中,但这也不起作用(如果必要的话,我可以向您展示这是什么样子)。所以看起来我并没有正确地使用BoxSizer,但是我不明白在这种情况下我应该如何使用它。我想要的是一个ListBook的页面,其中包含一个CheckBox和一个TextCtrl (用于单行文本条目)。你能帮上忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-21 07:50:46

正如我所看到的,您从来没有为您的页面分配任何sizer。

你应该这么做:

代码语言:javascript
复制
......
self.global_settings_file_box.Add(self.global_default_extension, proportion=1)

self.global_settings_file_window.SetSizer(self.global_settings_file_box)

self.global_settings_token_window = wx.Panel(parent=self.global_settings_listbook)
......

问候夏夫‘

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49952411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档