是否可以枚举wxWidgets中的wxFrame子级
Is it possible to enumerate the wxFrame children in wxWidgets?
我正在使用wxGlade设计器为一个小型应用程序生成GUI。它生成一个从wxFrame继承的类,wxFrame是主应用程序窗口。为了便于维护,我希望避免在这个生成的类中编写额外的代码。
但是,使用wxGlade创建的所有小部件实际上都是在自动生成的方法do_layout()中创建的,并且不可能在生成类中该生成方法的范围之外访问它们。
有没有一种方法可以在生成的类之外获取某个小部件的指针——通过名称、类型、枚举子类或类似的方法?
从wxWindow继承的所有类(wxFrame就是其中之一)都有一个函数"GetChildren",该函数返回子窗口列表,然后可以对其进行枚举。如果您正在按名称查找特定字段,请使用"FindWindow"函数。
实际上我自己找到了答案:
wxWindowList & children = myframe->GetChildren();
for ( wxWindowList::Node *node = children.GetFirst(); node; node = node->GetNext() )
{
wxWindow *current = (wxWindow *)node->GetData();
// .. do something with current
}
我建议您尝试wxFormBuilder。我以前也使用过wxGlade,但它对如何使用它提出了太多限制。例如,使用wxFormBuilder,您可以为表单上的每个控件选择"可见性"(public、protected、private)。它还可以为事件处理程序生成虚拟函数,因此您只需从wxFormBuilder生成的类派生类并实现这些函数。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- .cpp和.h文件中的模板专用化声明
- 反向给定链表中的K节点
- 正在查找文档以获得PS4平台的C++中的设备信息
- enum是C++中的宏变量还是整数变量
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 将字符串存储在c++中的稳定内存中
- 文本文件中的单词链表
- 递归函数计算序列中的平方和(并输出过程)
- 如何从C++中的依赖类型中获得它所依赖的类型
- C++中的"inline"关键字
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 用C++中的一个变量定义一个常量
- vector.resize()中的分配错误
- 使用指针从C++中的数组中获取最大值
- arr[-1]在c++中的奇怪行为
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 使用 wxthread 在 C++ 中更新 wxframe 的内容
- 是否可以枚举wxWidgets中的wxFrame子级