代码如下:
// Latitude line edit
QLineEdit *lineEdit = new QLineEdit;
lineEdit->setInputMask( ">\N999999.99;_" );
但是,我收到编译器警告:未知转义序列 '\N' 并且 QLineEdit 文本不包含“N”字符,仅包含“_”。 我究竟做错了什么? 比你们都提前。
最佳答案
在C++中,有一组定义的转义序列,用于将特殊字符存储到字符串中。
您实际上很幸运 \N
不在此集合中,因为那样您甚至不会收到编译器警告;警告文本可能会让您了解转义序列(不幸的是,它没有)。
因为\
是用来作为转义序列前缀的,不能直接使用;它必须自己转义:
">\\N999999.99;_"
这会在输出中编译为单个 >\N999999.99;_
。
关于c++ - QLineEdit::setInputMask( const QString &mask ) - 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22506121/