首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wxWidgets:显示隐藏在XRC中的窗口

wxWidgets:显示隐藏在XRC中的窗口
EN

Stack Overflow用户
提问于 2012-10-25 16:14:07
回答 1查看 719关注 0票数 1

我是wxWidgetsDialogBlocks的新手。我有一个使用DialogBlocks创建并保存为XRC文件的表单。表单的一部分具有垂直的wxStaticBoxSizer,其中放置了两个wxScrolledWindow元素。我想一次只显示一个数据,根据要显示给用户的数据,所以我有一个标记为隐藏,另一个是可见的。当我试图切换显示并显示隐藏在XRC中的小部件并隐藏不是的小部件时,我隐藏的小部件就会消失,但是我想要显示的小部件是不可见的。但是,如果我调整窗口的大小,它就会出现。一旦它出现了,我就可以在没有问题的情况下来回切换。我尝试了多种组合,包括显示、启用、无效、获取sizer和调用RecalcSizes、刷新、布局等。我也试过不同的组合。只需调用Show,我就可以在两者之间切换,但只在切换到最初不显示的窗口并调整窗口大小之后。从我在医生那里看到的。问题是wxSizer没有为隐藏窗口分配空间,但是可以设置一个标志来覆盖该行为。我的问题是,DialogBlocks没有公开这个特性,所以如果我手动编辑XRC文件,当我或其他开发人员保存一些更改时,修改将丢失。是否有一系列的呼叫,我可以告诉sizer分配空间?默认的OnResize处理程序会导致sizer分配空间,但我不知道这是什么,也不知道如何做。

这是我在文档中找到的标志:

wxRESERVE_SPACE_EVEN_IF_HIDDEN通常wxSizers不为隐藏窗口或其他项分配空间。此标志覆盖此行为,以便为窗口分配足够的空间,即使它是不可见的。例如,这样可以在不调整父对话框大小的情况下动态显示和隐藏控件。这个函数是新的,因为wxWidgets版本2.8.8

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-25 22:55:48

不幸的是,DialogBlocks实际上不允许您指定此标志。没有它,您需要在显示以前隐藏的控件之后调用Layout()。如果您在有足够空间容纳现在需要更多空间的孩子(例如,在顶级家长上调用它将始终有效)的父母上调用它,但会导致控件明显地移动,而这可能不是您想要的,这将是有效的。

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

https://stackoverflow.com/questions/13072836

复制
相关文章

相似问题

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