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连接数据库并导入文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)