0

我正在使用一个简单的数字文本验证器wxTextValidator和一个wxTextControl。我想知道第二个参数有什么用:

wxTextValidator(long style = wxFILTER_NONE, wxString* valPtr = NULL)

我只是将引用传递给一个成员变量:

myTextControl_->SetValidator( wxTextValidator(wxFILTER_NUMERIC, &myValue_) );

我正在使用wxWidgets 2.8.12,从文档中我认为myValue_变量将接收文本控件的经过验证的内容,但这在我的应用程序中不会发生。

我做错了什么还是 valPtr 参数没有接收到文本控件的内容?

4

2 回答 2

1

如果您调用 wxValidator::Validate 或 wxValidator::TransferFromWindow,myvalue_ 变量应该接收输入的值。如果您使用默认的 OnOK() 处理程序关闭对话框,则会自动发生这种情况。否则你必须自己做。

于 2013-04-03T11:11:15.737 回答
0

Ravenspoint 已经回答了最初的问题,但我想补充一点,它wxValidator可以用于验证或数据传输——或同时用于两者。事实上,一些验证器,例如wxGenericValidator仅用于数据传输(验证复选框或单选按钮没有多大意义!)。所以这个类的名字有点误导,因为它最多描述了它的一半,而且可能少于它的用途。

于 2013-04-03T13:56:26.237 回答