gpt4 book ai didi

c++ - 使用 XRC 在 wxWidgets 中隐藏一个 sizer 及其所有内容

转载 作者:搜寻专家 更新时间:2023-10-31 00:31:55 25 4
gpt4 key购买 nike

我正在使用 .xrc 文件来设置我的 wxWidgets GUI。 For most GUI elements I can specify <hidden>1</hidden> 并且不会绘制该元素。

我想要的是能够隐藏我的 wxStaticBoxSizer并且不绘制它及其内容。

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

<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 文件?

最佳答案

快速破解:将 sizer 嵌套在 wxPanel 中并隐藏面板。


如果您愿意重建 XRC 库,这里有一个可以提供您需要的功能的快速补丁。

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

// This has to be done after CreateChildren().
if(GetBool(wxT("hideitems"), 0) == 1)
sizer->ShowItems(false);

就是这样。重建库,现在你可以指定 <hideitems>1</hideitems>在 sizer 上,这意味着它将在创建时隐藏所有项目。

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

关于c++ - 使用 XRC 在 wxWidgets 中隐藏一个 sizer 及其所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32697966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com