Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt C++;:行编辑仅接受字母数字字符、破折号和下划线_C++_Regex_Qt_Qlineedit_Qregexp - Fatal编程技术网

C++ Qt C++;:行编辑仅接受字母数字字符、破折号和下划线

C++ Qt C++;:行编辑仅接受字母数字字符、破折号和下划线,c++,regex,qt,qlineedit,qregexp,C++,Regex,Qt,Qlineedit,Qregexp,我正在寻找一种方法,将行编辑限制为只接受字母数字字符、破折号和下划线(整行中可能只有一个破折号和一个下划线),而不接受空格。我在看RegExp,但后来我离开了这个选项,因为我发现一些博客文章解释说RegExp真的很慢。现在我不知道什么是限制行编辑的最佳方法,所以输出应该是我想要的 您向我推荐什么?您应该阅读函数QLineEdit::setValidator文档和类QValidator文档。您可以定义自己的验证程序类(继承QValidator)并将其对象实例传递给QLineEdit对象(使用set

我正在寻找一种方法,将行编辑限制为只接受字母数字字符、破折号和下划线(整行中可能只有一个破折号和一个下划线),而不接受空格。我在看RegExp,但后来我离开了这个选项,因为我发现一些博客文章解释说RegExp真的很慢。现在我不知道什么是限制行编辑的最佳方法,所以输出应该是我想要的


您向我推荐什么?

您应该阅读函数QLineEdit::setValidator文档和类QValidator文档。您可以定义自己的验证程序类(继承QValidator)并将其对象实例传递给QLineEdit对象(使用setValidator函数)。

“该RegExp非常慢”:您正在检查行编辑的输入,该行编辑通常是由人输入的两个字符。我怀疑QRegExp是否会成为瓶颈。