我正在使用.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>
是否可以从.xrc文件中隐藏此
wxStaticBoxSizer
? 最佳答案
快速破解:将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);
而已。重建库,现在您可以在sizer上指定
<hideitems>1</hideitems>
,这意味着将在隐藏所有项目的情况下创建它。这将处理除
wxStdDialogButtonSizer
之外的所有大小调整器,后者具有单独的代码。我使用XRC示例对其进行了wxBoxSizer
和wxStaticBoxSizer
的测试。我想我将发送拉取请求以将此功能添加到wx。同时,如果有人可以使用更大的应用程序对此进行更多测试,那就太好了。关于c++ - 使用XRC在wxWidgets中隐藏sizer及其所有内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32697966/