我正在使用简单的数字文本验证器 wxTextValidator 以及 wxTextControl 。我想知道第二个参数有什么用处:
wxTextValidator(long style = wxFILTER_NONE, wxString* valPtr = NULL)
我只是将引用传递给成员变量:
myTextControl_->SetValidator( wxTextValidator(wxFILTER_NUMERIC, &myValue_) );
我正在使用 wxWidgets 2.8.12 ,从文档中我认为 myValue _ 变量会收到文本控件的验证内容,但这不会发生在我的申请中。
我做错了什么或valPtr参数不是否收到文本控件的内容?
答案 0 :(得分:1)
如果调用wxValidator :: Validate或wxValidator :: TransferFromWindow,myvalue_变量应该会收到输入的值。如果使用默认的OnOK()处理程序关闭对话框,则会自动发生这种情况。否则你必须自己做。
答案 1 :(得分:0)
Ravenspoint已经回答了最初的问题,但我只想补充说wxValidator
可以用于验证或数据传输 - 或者同时用于两者。实际上,某些验证器(例如wxGenericValidator)仅用于数据传输(验证复选框或单选按钮没有多大意义!)。所以这个类的名称有点误导,因为它最多描述了它的一半,并且可能少于它的用途。