qt lineedit 读入多个数字
QTcreator在lineedit中输入多个数字,以“,”分割,如何把这些数分别读入相应的变量内?例如在lineedit中输出"23,46,71",然后分别把这三个数写...
QT creator在lineedit中输入多个数字,以“,”分割,如何把这些数分别读入相应的变量内? 例如在lineedit中输出" 23,46,71",然后分别把这三个数写入 int a,b,c中? 多谢了。
展开
展开全部
可以先吧lineedit中的内容一次性读入到一个QString中.然后用QString的split函数进行切割.
在lineedit中输出" 23,46,71",
QString str = lineedit->test();
则str=" 23,46,71";
QStringList list = str.split(",", QString::SkipEmptyParts);根据","进行切割.并去除空串.
切割完后list1的内容为list1: [ "23", "46", "71" ]
然后再把切割完的结果分别给a,b,c赋值.
a = list->at(0).toInt();
b = list->at(1).toInt();
c = list->at(2).toInt();
注意:这种写法很容易导致错误.必须要求lineedit按 "X,X,X" 的格式来输入.因此我们可以用正则表达式来限制lineedit的输入模式.
QRegExp regExp("^(\\d{1,5},){2}\\d{1,5}$");
QRegExpValidator *pRegExpValidator = new QRegExpValidator(regExp,this);
lineedit->setValidator(pRegExpValidator);
在lineedit中输出" 23,46,71",
QString str = lineedit->test();
则str=" 23,46,71";
QStringList list = str.split(",", QString::SkipEmptyParts);根据","进行切割.并去除空串.
切割完后list1的内容为list1: [ "23", "46", "71" ]
然后再把切割完的结果分别给a,b,c赋值.
a = list->at(0).toInt();
b = list->at(1).toInt();
c = list->at(2).toInt();
注意:这种写法很容易导致错误.必须要求lineedit按 "X,X,X" 的格式来输入.因此我们可以用正则表达式来限制lineedit的输入模式.
QRegExp regExp("^(\\d{1,5},){2}\\d{1,5}$");
QRegExpValidator *pRegExpValidator = new QRegExpValidator(regExp,this);
lineedit->setValidator(pRegExpValidator);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询