qt下一个字符串数组如何放到容器类QList<Qstring>list

qt下一个字符串数组如何放到容器类QList<Qstring>list,第1张

Qstirng str=“123 456 789”;

QStringList t_list =strsplite(" ");

QList<QStringList> t_data;

for(int i=0;i<t_listsize();i++)

{

t_dataappend(t_list[i]);

}

qDebug()<<t_data;

Qt获取天气信息

该功能主要借助于中国天气网提供每个地方的网页,利用Qt的网络类将网页上的字符截取下来

步骤一:建立两个相关的Qt网络类的对象

QNetworkAccessManager manager;

QNetworkReply reply;

QString city;//用于获取地方的字符

QString weather;//用于获取天气的字符串

public slots:

void getWeather(QNetworkReply replyweather);//这里新建个槽,在步骤三的时候要用到

1

2

3

4

5

6

1

2

3

4

5

6

步骤二:获取中国天气网提供每个地方的网页

QString str(">

可以使用QT自带的数据库完成 *** 作,以下是参考代码:

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");    //添加数据库

dbsetDatabaseName("notedb");     //创建一个notedb的文件存储数据

dbopen();   //开启数据库

query = QSqlQuery(db);  //获得访问数据库的query

queryexec(XXX);   //执行指令(XXX为SQL指令)

dbclose();   //关闭数据库

一般而言会将db变量作为全局变量或者数据成员,当需要访问的时候就获取一个query就可以了。

要实现所提到的功能,要好好看看QString、QStringList,这两玩意主要是临时存放数据、分割数据等作用,另外,要看QFile、QDir、QFileInfo、QTextStream,这四个主要用来读取文本数据。看看QVector或者QList等来存放读出来的数据。

另外,要实现这玩意,SQL的语句不要求精通,但是基本的Create、Insert、Select、Delete等 *** 作要准确无误。否则出错了QT是看不出来的。QT不会检测SQL的准确性的。

uitedLog->toPlainText();

QStringList list = uitedLog->toPlainText()split("\n");

再循环取 list写入文件就可以了。

在Qt中,可以使用addItem()函数来增加一行数据到listview中。例如,你可以使用以下语句在listview中添加一行数据:

listView->addItem("1","2","3","4");

1、QString

2、QVariant

3、QStringList

4、QVector

5、QStack

6、QQueue

7、QList

8、QMap

QString 是qt中关于String的封装类,用于处理字符串。

'''

void testQString(){

QString str1="hello";

qDebug()<<str1;

str1append("word");

qDebug()<<str1;//"hello word"

qDebug()<<str1indexOf("word");//5

QString str2="Hello";

qDebug()<<str2;

str2fill('x');//"xxxxx"

qDebug()<<str2;

str2fill('x',2);//"xx"

qDebug()<<str2;

qDebug()<<QString()isEmpty();//true

qDebug()<<QString("")isEmpty();//true

qDebug()<<QString(" ")isEmpty();//false

qDebug()<<QString("abc")isEmpty();//false

qDebug()<<QString()isNull();//true

qDebug()<<QString("")isNull();//false

qDebug()<<QString(" adc")isNull();//false

QString str3="Hello";

qDebug()<<str3;

qDebug()<<str3left(3);//"hel"

qDebug()<<str3mid(2,2);//"ll"

qDebug()<<str3mid(2);//"llo"

qDebug()<<str3right(4);//"ello"

QString str4="hello word";

qDebug()<<str4;//"hello word"

str4remove(5,6);

qDebug()<<str4;//"hello"

QString str5="hello word";

str5insert(5,QString("word"));

qDebug()<<str5;//"hello wordword"

QString str6="hello word";

QString re="you";

str6replace("word",re);

qDebug()<<str6;//"hello you"

QString path="/user/local/bin/mapp";

qDebug()<<path;//"/user/local/bin/mapp"

QStringList list=pathsplit('/',QString::SkipEmptyParts);

qDebug()<<list;//("user,"local","bin","mapp")

QString str7="hello word";

qDebug()<<str7startsWith("hello");//true

qDebug()<<str7endsWith("word");//true

qDebug()<<QString("hello %1,helo you %2 ")arg("word")arg("hmf");//hello word,hello you hmf

qDebug()<<QString::localeAwareCompare("xxx","XXX");//-1

}

'''

QVariant 是万能变量,可以存取各种变量。

'''

void testQVariant(){

QVariant var;

varsetValue(QString("hello word"));

qDebug()<<var;//QVariant(QString, "hello word")

QString data=vartoString();

qDebug()<<data;//"hello word"

// varclear();

varsetValue(100);

qDebug()<<var;//QVariant(int, 100)

int d=vartoInt();

qDebug()<<d;//100

}

'''

QStringList 是存储QString类型的列表。

'''

void testQStringList(){

QStringList stL;

stL<<"str1"<<"str2"<<"str3"<<"str4";

qDebug()<<stL;//("str1", "str2", "str3", "str4")

QString str1=stLjoin("/");

qDebug()<<str1;//"str1/str2/str3/str4"

qDebug()<<stLcontains("str1");//true

qDebug()<<stLindexOf("str2");//1

stLappend("str3");

stLappend("str4");

qDebug()<<stL;//("str1", "str2", "str3", "str4", "str3", "str4")

stLremoveDuplicates();

qDebug()<<stL;//("str1", "str2", "str3", "str4")

//遍历方法1

for (int i=0;i<stLsize();i++){

qDebug()<<stLat(i);

}

//遍历方法2

QStringList::Iterator itr;

for(itr=stLbegin();itr!=stLend();++itr){

qDebug()<<itr;

}

}

'''

QVector 数组的模板类,本质是动态数组,存储方式是一片连续的内存空间。

'''

void testQVector(){

QVector<QString> tV;

tVappend("Str1");

tVappend("str2");

tVappend("str3");

tVappend("str4");

qDebug()<<tV;//QVector("Str1", "str2", "str3", "str4")

tVprepend("str0");

qDebug()<<tV;//QVector("str0", "Str1", "str2", "str3", "str4")

tVpush_back("str5");

qDebug()<<tV;//QVector("str0", "Str1", "str2", "str3", "str4", "str5")

tVpush_front("str00");

qDebug()<<tV;//QVector("str00", "str0", "Str1", "str2", "str3", "str4", "str5")

for(int i=0;i<tVsize();i++){

qDebug()<<tVat(i);

}

QVector<QString>::Iterator itr;

for(itr=tVbegin();itr!=tVend();itr++){

qDebug()<<itr;

}

qDebug()<<tVisEmpty();//false

qDebug()<<tVat(0);//"str00"

qDebug()<<tVvalue(3);//"str2"

qDebug()<<tVsize();//7

tVpop_back();

qDebug()<<tV;//QVector("str00", "str0", "Str1", "str2", "str3", "str4")

tVpop_front();

qDebug()<<tV;//QVector("str0", "Str1", "str2", "str3", "str4")

}

'''

QStack为qt中的栈模板类,继承于QVector,具有后进先出的特性。

'''

void testQStack(){

QStack<QString> stack;

stackpush("str1");

stackpush("str2");

stackpush("str3");

stackpush("str4");

qDebug()<<stack;//QVector("str1", "str2", "str3", "str4")

qDebug()<<stackpop();//"str4"

qDebug()<<stack;//QVector("str1", "str2", "str3")

qDebug()<<stacktop();//"str3"

qDebug()<<stack;//QVector("str1", "str2", "str3")

qDebug()<<stackisEmpty();//false

qDebug()<<stacksize();//3

while(!stackisEmpty())

{

qDebug()<<stackpop();

}

}

'''

QQueue 是qt中的队列的模板类,同样继承自QVector,具有先进先出的特性。

'''

void testQueue()

{

QQueue<QString> qq;

qqenqueue("str1");

qqenqueue("str2");

qqenqueue("str3");

qqenqueue("str4");

}

'''

QList是qt中的链表的实现,同时可以按位置索引和快速插入删除数据。

'''

void testList(){

QList<QString> ql;

qlappend("str");

qlappend("str1");

qlappend("str2");

qlappend("str3");

qlappend("str4");

qlappend("str5");

qDebug()<<ql;//("str", "str1", "str2", "str3", "str4", "str5")

for(int i=0;i<qlsize();i++){

qDebug()<<qlat(i);

}

QList<QString>::Iterator itr;

for(itr=qlbegin();itr!=qlend();itr++){

qDebug()<<itr;

}

qlpop_back();

qDebug()<<ql;//("str", "str1", "str2", "str3", "str4")

qlpop_front();

qDebug()<<ql;//("str1", "str2", "str3", "str4")

qDebug()<<qlsize();//4

qDebug()<<qlisEmpty();//false

}

'''

QMap 是qt中映射的模板类。就是字典。

'''

void testMap()

{

QMap<QString,int> map;

map["one"]=1;

mapinsert("two",2);

map["three"]=3;

map["four"]=4;

map["five"]=5;

qDebug()<<map;//QMap(("five", 5)("four", 4)("one", 1)("three", 3)("two", 2))

qDebug()<<mapvalue("one");//1

qDebug()<<map["two"];//2

qDebug()<<mapcontains("two");//true

qDebug()<<mapkeys();//("five", "four", "one", "three", "two")

qDebug()<<mapvalues();//(5, 4, 1, 3, 2)

//数据遍历

QMapIterator<QString ,int> itr(map);

while(itrhasNext()){

itrnext();

qDebug()<<itrkey()<<itrvalue();

}

}

'''

QChar :表示一个Unicode编码的字符;

QByteArray :相当于是QChar的一个vector<>;

QStringRef :是对QString一部分的一个引用,作了一些优化;

QStringList :是QList的派生类,是字符串的列表类,非常有用;

QRegExp :对于正则表达式提供了丰富的 *** 作,详细用法;

QTextCodec :提供QString与不同编码的字符串之间的转换 

隐式共享又称回写复制。

1、当两个对象共享同一份数据(通过浅拷贝实现数据块的共享)时,如果数据不改变,则不进行数据的复制(浅拷贝,引用)。

2、而当某个对象需要改变数据时,则进行深拷贝(堆中开辟空间)。

Qt中支持隐式共享的类,还包括:

1、所有的容器类。

2、QString、QByteArray、QBrush、QPen、QPalette、QBitmap、QImage、QPixmap、QCursor、QDir、QFont和QVariant等。

详细参见 QString类的详细用法

QString类存储Unicode 字符串(UTF-16编码),QString字符串中能嵌入'\0'字符,length()函数返回整个字符串的大小,包括嵌入的'\0'字符。

QString转Qchar时,需先转换成QByteArray。

常用字符串函数如下:

        返回从pos起长度为len的字符串。

        返回从pos起到字符串结尾的字符串。

        返回最前面 长度为len的字符串。

        返回最后面 长度为len的字符串。

第一个参数为待检字符串 / 字符;第二个参数为起始位置,默认从0字节开始检索。

检索成功返回字节起始位置值,检索失败返回 -1。

检查字符串是否以字符串 / 字符开始,成功则返回true,失败则返回false。

检查字符串是否以字符串 / 字符结尾,成功则返回true,失败则返回false。

QByteArray类存储char型字符。

以上就是关于qt下一个字符串数组如何放到容器类QList<Qstring>list全部的内容,包括:qt下一个字符串数组如何放到容器类QList<Qstring>list、Qt5 获取天气数据时报这个错误是什么意思、如何用Qt连接数据库并导入文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9534678.html

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

发表评论

登录后才能评论

评论列表(0条)

保存