首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用XRC隐藏wxWidgets中的sizer及其所有内容

使用XRC隐藏wxWidgets中的sizer及其所有内容
EN

Stack Overflow用户
提问于 2015-09-21 14:36:14
回答 2查看 725关注 0票数 2

我使用一个.xrc文件来设置wxWidgets图形用户界面。1和元素将不会被绘制。

我想要的是能够隐藏我的wxStaticBoxSizer,让它和它的内容不被绘制。

它的设置如下,但添加<hidden>1</hidden>没有任何效果。静态框仍然绘制它包含的所有内容。

代码语言:javascript
复制
<object class="wxStaticBoxSizer" name="wxID_ANY">
    <orient>wxVERTICAL</orient>
    <label>Flight Formation</label>
    <object class="sizeritem">
    <flag>wxGROW|wxALL</flag>
    <border>10</border>
    <option>1</option>

可以将这个wxStaticBoxSizer隐藏在.xrc文件中吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-23 13:11:04

快速黑客:在一个wxPanel内筑巢,并隐藏面板。

如果您愿意重新构建XRC库,下面是一个提供所需功能的快速修补程序。

src/xrc/xh_sizer.cpp中,在wxSizerXmlHandler::Handle_sizer()的主体中,在调用CreateChildren(parent, true/*only this handler*/);之后添加以下内容

代码语言:javascript
复制
// This has to be done after CreateChildren().
if(GetBool(wxT("hideitems"), 0) == 1)
   sizer->ShowItems(false);

就这样。重新构建库,现在可以在sizer上指定<hideitems>1</hideitems>,这意味着它将被创建并隐藏其所有项。

这将处理除wxStdDialogButtonSizer之外的所有sizer,后者有单独的代码。我使用XRC示例测试了它的wxBoxSizerwxStaticBoxSizer。我想我会发送一个请求,将这个特性添加到wx;同时,如果有人可以使用更大的应用程序对此进行更多的测试,那就太好了。

票数 3
EN

Stack Overflow用户

发布于 2015-09-22 21:26:52

目前无法在XRC中隐藏sizer,您能做的最好的就是从代码中调用wxSizer::ShowItems()。将来也应该支持sizer的“隐藏”属性,尽管它可能应该被称为其他的东西,以避免产生这样的错误印象,即sizer是窗口(而不是)。

顺便说一句,如果您尝试验证您的XRC,您就会发现这里不允许使用“隐藏”元素。

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

https://stackoverflow.com/questions/32697966

复制
相关文章

相似问题

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