【发布时间】:2013-08-21 06:14:24
【问题描述】:
我有一个名为 p 的 wxPanel。
我有 5 个文本框。
如何为面板中的每个文本框分配一段静态文本而不一一进行?我可以像引用数组元素一样引用它们吗?
谢谢!
【问题讨论】:
我有一个名为 p 的 wxPanel。
我有 5 个文本框。
如何为面板中的每个文本框分配一段静态文本而不一一进行?我可以像引用数组元素一样引用它们吗?
谢谢!
【问题讨论】:
示例可能如下所示:
for( wxWindowList::iterator it = yourWindow->GetChildren().begin();
it != yourWindow->GetChildren().end(); it++){
wxStaticText* aStaticText = dynamic_cast<wxStaticText *>( *it );
if( aStaticText ){
aStaticText->SetLabel( wxT("FooBar") );
}
}
我没有测试/编译它,所以请原谅任何错别字
【讨论】:
wxStaticText* aStaticText = dynamic_cast<wxStaticText *>( *it ); 行的作用吗?谢谢!也许有些 cmets 会这样做。
it 是包含wxWindow * 指针的列表的迭代器,所以*it 会给你一个'wxWindow *' 指针。由于您想访问特定 wxWindow 子类的功能,在您的情况下为 wxStaticText(?),您需要一个演员表。我放在那里的动态比static_cast 或类似 c 的演员更方便,因为当您的窗口/面板包含不同类型的元素时它也可以工作
因为wxPanel 是wxWindow 的子类,你可以使用wxWindow::GetChildren
这将为您提供所有孩子的类似 stl 的列表
【讨论】: