qt lineedit 读入多个数字

2024年11月29日 20:45
有1个网友回答
网友(1):

可以先吧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);