【发布时间】:2017-02-27 02:30:01
【问题描述】:
我需要将 wxTextControl 中的文本验证为 float 或 int(对于初学者)。我最终将需要 float > 0、float >= 0 等。我的想法是创建一个枚举来定义我的所有场景并在函数中创建 val。我无法开始,因为 wxTextValidator 的声明会引发错误。
enum class glValidate { glInt, glPosInt, gl0PosInt, glFloat, glPosFloat, gl0PosFloat, glString};
wxValidator GuiLib::CreateValidator(std::wstring* default_value, glValidate flag) {
wxArrayString numberArray;
numberArray.Add(wxT("0"));
numberArray.Add(wxT("1"));
numberArray.Add(wxT("2"));
numberArray.Add(wxT("3"));
numberArray.Add(wxT("4"));
numberArray.Add(wxT("5"));
numberArray.Add(wxT("6"));
numberArray.Add(wxT("7"));
numberArray.Add(wxT("8"));
numberArray.Add(wxT("9"));
wxTextValidator val(wxFILTER_NONE, default_value);
switch (flag) {
case glValidate::glInt:
numberArray.Add(wxT("-"));
val.SetStyle = wxFILTER_INCLUDE_LIST;
val.SetIncludes(numberArray);
break;
case glValidate::glPosInt:
val.SetStyle = wxFILTER_INCLUDE_LIST;
val.SetIncludes(numberArray);
break;
}
etc..
}
我认识到即使是这个简单的场景也被破坏了,因为 glInt 案例将允许“123-456”,但我认为一旦我让这部分工作,我可以通过事件处理程序处理这个问题。问题是我收到一条错误消息说明
构造函数“wxTextValidator::wxTextValidator”的实例不匹配 参数列表
【问题讨论】: