首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多个滚动面板添加到wxPython中的一个wxPython中

将多个滚动面板添加到wxPython中的一个wxPython中
EN

Stack Overflow用户
提问于 2014-02-11 11:19:09
回答 1查看 237关注 0票数 0

级别:初学者

我正在Windows 7操作系统上用wxPython开发一个图形用户界面。Python是2.7ad wxPython版本为3。

我想花点时间解释一下我想要达到的目标。您可能已经注意到,从第一个图像中可以看到,我的GUI中有4个不同的滚动面板,名为panel-1 to panel-4。将垂直BoxSizer应用于每个滚动面板。作为回报,每个滚动面板都包含一个盒子和一个水平wx.StaticLine。使用水平线的原因是为了使用户更容易读取特定序列号的值。(用户将很容易读取特定序列号在不同面板中的所有值。)最后,所有这四个滚动面板都添加到一个名为panelSizer的水平panelSizer中。目前,滚动面板正在单独滚动。重要的是,所有滚动面板每次都包含相同数量的组件/元素。

问题:

我需要一种方法,以便我可以将所有这些滚动面板添加到一个sizer或一个面板中,这样在右侧只有一个滚动条,当我滚动这个滚动条时,所有的滚动面板(面板-1到面板-4)都应该同时滚动。我想要这样的东西:

我认为从GUI的角度来看,这个选项更好。我尝试了几种方法,比如,我创建了一个名为main panel的新滚动面板,并使用SetSizer()函数应用了名为panelSizer的BoxSizer (它包含从面板-1到面板-4的所有面板),但是滚动条没有出现,甚至单个滚动条也没有出现!另外,我检查了面板中是否有足够的组件,这样滚动条就会出现。我试图将四个滚动面板更改为简单面板,然后添加到panelSizer,然后将sizer应用到main panel,但没有解决问题。

有人能告诉我我的方法有什么问题吗?任何建议。谢谢您抽时间见我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-11 12:51:20

好吧,我自己找到了解决办法,就这样。

我必须禁用面板上的滚动-1到面板-4。这可以通过不对它们使用SetupScrolling()方法来完成。此外,应该在mainPanel上启用滚动,如下所示:

代码语言:javascript
复制
mainPanel.SetupScrolling()

例如:考虑有两个滚动面板,名为panel1panel2。现在,如果您想将这两个滚动面板添加到另一个名为mainPanel的滚动面板中,那么首先创建这两个滚动面板,然后禁用对它们的滚动,然后将这两个面板添加为一个sizer,然后将这个sizer应用到mainPanel中。代码示例:

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21700390

复制
相关文章

相似问题

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