太久没用Qt了,最近一两年都是C#,突然发现Qt不怎么会了,拿起我心爱的书,没得说看看吧,基本都会,但是不记得具体函数的,在这纯粹的做个记录,有些东西不会太具体,甚至会在直接贴上网上的链接。。。。
#include <QCoreApplication>
#include <qdebug.h>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
/*
//信号和槽
//一个信号与另一个信号相连
connect(Object1,signal(signal11),Object2,SLOT(signal1));
//一个信号与多个槽相连
connect(Object1,signal(signal11),Object2,SLOT(slot1));
connect(Object1,signal(signal11),Object3,SLOT(slot2));
//一个槽响应多个信号
connect(Object1,signal(signal12),Object2,SLOT(slot2));
connect(Object3,signal(signal12),Object2,SLOT(slot2));
//注意需要关联的信号与槽的签名必须是等同的,即信号的参数类型和参数个数与接收的信号的槽的参数类型和参数个数相同。
//不过一个槽的参数是可以少于信号的参数个数的,但是缺少的参数必须是信号参数的最后一个或几个参数。
//如果不符编译器会报错。
*/
//字符串操作
QString str1 = "瑞奇自动化";
str1 = str1+"欢迎您";
QString str2 = "你好";
str2+="各位";//你好各位
//append()与+=功能基本相同
//组个字符串的另一个函数sprintf();
QString str;
str.sprintf("%s","hello");
str.sprintf("%s %s","hello ","word");//hello word
QString str3;
str3=QString("%1 欢迎 %2 %3").arg("瑞奇").arg("您").arg(2019);
//insert()在指定位置插入一个字符串
str3.insert(2,"自动化");
//在开头插入字符串prepend()
//replace()用指定的字符串替换原字符串中的某些字符
//trimmed()去除字符串两端空白
//simplified()去除字符两端的空白字符,使用单个空字符替换字符串中出现的空白字符
//startsWith()判断一个字符串是否已某个字符串开头
QString str4 = "hello,word";
bool b = str4.startsWith("H",Qt::CaseSensitive);//false
b = str4.startsWith("h",Qt::CaseSensitive);//true
//endsWith()与startsWith()相反,判断是否已某个字符串结尾
//contains()判断一个指定的字符串是否出现过
//遍历整个字符串判断内容是否出现过
QString s12 ="Welcome to you";
QString s11 ="hello word";
qDebug() << s12.contains("to",Qt::CaseSensitive) << " "
<< s12.contains("To",Qt::CaseInsensitive) << endl;
//< <= >= 等同样适用
//localeAwareCompare(const QString& ,const QString &)静态成员函数
//比较两个字符串如果前者小于后者返回负整值,等于返回0,大于返回正整数
if(QString::localeAwareCompare(s11,s12) < 0)
qDebug() << "s11 < s12" << endl;
else if(QString::localeAwareCompare(s11,s12) > 0)
qDebug() << "s11 > s12" << endl;
else if(QString::localeAwareCompare(s11,s12) == 0)
qDebug() << "s11 == s12" << endl;
//compare()//该函数可指定是否区分大小写比较,其他跟localeAwareCompare()类似
if(QString::compare(s11,s12,Qt::CaseSensitive) < 0)
qDebug() << "s11 < s12" << endl;
else if(QString::compare(s11,s12,Qt::CaseSensitive) > 0)
qDebug() << "s11 > s12" << endl;
else if(QString::compare(s11,s12,Qt::CaseSensitive) == 0)
qDebug() << "s11 == s12" << endl;
return a.exec();
}