QT信号与槽,字符串常用方法

太久没用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();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值