QT怎么把几个数字输入到数组里面??求助

QT怎么把几个数字输入到数组里面??求助,第1张

int index_num=0;//数组索引值
QString str=lineedit->text();
while(strlength()!=0)
{
int index_=strindexOf(" ");
if(index_==0)
{
str=strright(strlength()-1);
}
else if(index_>0)
{
shuzu[index_num]=strleft(index_)toInt();
str=strright(strlength()-index_);
index_num++;
}
else
{
shuzu[index_num]=strtoInt();
index_num++;
}
}
就在这徒手敲的 也不知道行不行,大问题不会有
有什么问题再提问
这种是处理字符串
还有比较高级的就是 正则表达式 有兴趣也可以看看

QLineEdit 自带信号textChanged ( const QString & text ) 和textEdited ( const QString & text ) 可以实现获取当前编辑框的text,槽函数要自己写。
connect(lineedit,SIGNAL(textEdited (const QString &)),this,SLOT(saveText(const QString &)));
saveText(const QString &text)
{
char array = texttoLatin1data();
}

qstring转化为char数组:

QString str="12fff";

QByteArray ba=strtoLatin1();

char c=badata();

解析:

toLatin1QString转QByteArray的方法,Latin1代表ASCII。

const char:指向字符常量的指针

const char  ss= "xxxxxx"; 

表示的是指针指向的内容不可修改。

char  const ss = "xxxxxx";

表示这是一个指针常量,再不能指向其他地址,比如ss= 是不允许的。
const char  const ss ="" ;

指针不可修改,指向的内容也不可以修改。

扩展资料:

char数组转化成为QString:

char c[]="12ff";

QString str=QString(QLatin1String(c));

对于字符串的:

/0 表示结束符,比如C语言加的数组中,最后有个默认的 /0 表示结束。

/0 不是空格,’ ’ 才是空格。
“” 就是“一个空的字符串”。

你可以把lineEdit里面的内容保存为字符串。lineEdit有个信号叫做textEdited,你可以做一个函数
void copy()
{
char show1[100] = { 0 };
strcpy(lineEdit->text()toUtf8()data(),show1);
}
然后连接:
connect(lineEdit,SIGNAL(textEdited(QString)),this,SLOT(copy()));
再想办法将字符串转化为数字。

Qt提供了一个名为QString::toUtf8()的函数,可以将QString类型的字符串转换为uint8类型的字节数组。例如,如果要将char转换为uint8,可以使用以下代码:QString str(char);uint8 data=strtoUtf8()data();

Qt下面,字符串都用QString,确实给开发者提供了方便,想想VC里面定义的各种变量类型,而且函数参数类型五花八门,经常需要今年新那个类型转换
Qt再使用第三方开源库时,由于库的类型基本上都是标准的类型,字符串遇的多的就是Char类型
在Qt下怎样将QString转char呢,需要用到QByteArray类,QByteArray类的说明详见Qt帮助文档。
因为char最后都有一个‘/0’作为结束符,而采用QString::toLatin1()时会在字符串后面加上‘/0’
方法如下:
Qstring str;
char ch;
QByteArray ba = strtoLatin1();
ch=badata();
这样就完成了QString向char的转化。经测试程序运行时不会出现bug
注意第三行,一定要加上,不可以strtoLatin1()data()这样一部完成,可能会出错。

补充:以上方法当QString里不含中文时,没有问题,但是QString内含有中文时,转换为char就是乱码,采用如下方法解决:
方法1:
添加GBK编码支持:
#include <QTextCodec>
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
然后改变上面的第三行为:QByteArray ba = strtoLoacl8Bit(); toLoacl8Bit支持中文
方法2:
先将QString转为标准库中的string类型,然后将string转为char,如下:
std::string str = filenametoStdString();
const char ch = strc_str();


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13391790.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-27
下一篇 2023-07-27

发表评论

登录后才能评论

评论列表(0条)

保存