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 不是空格,’ ’ 才是空格。
“” 就是“一个空的字符串”。
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();
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)