zoukankan      html  css  js  c++  java
  • Qt学习3-函数

    一、字符串

    #include "mainwindow.h"
    #include <QApplication>
    #include<QLabel>
    #include<QString>
    #include <QtDebug>//输出头文件
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
    
        /**字符串**/
        QString str;
        str=QString("%1 %2").arg("字符串").arg("测试");
        QLabel *label1 =new QLabel(str);
        label1->show();
    
        QString str1="Hello";
        QString str2="World";
        str1 += str2;
        str1.append("");
        qDebug() << str1;
    
        QString str3="  xxxx 	  yyyy 
     ! ";
        str3=str3.trimmed();//移出字符串两端的空白字符
        str3.insert(1,'i');//在原字符串特定的位置插入另一个字符串
        str3.prepend('p');//在原字符串的开头插入另一个字符串
        str3.replace('y','z');//指定的字符串代替原字符串中的某些字符
        qDebug() << str3;
    
        QString str4="  Hello 	  QT 
     ! ";
        str4=str4.simplified();//移除字符串两端的空白字符,使用单个空格字符“ ”代替
        qDebug() << str4;
    
    
        QString str5="Hello Qt!";
        bool flag1 = str5.startsWith("Hello",Qt::CaseSensitive); //判断一个字符串是否以某个字符串开头
        bool flag2 = str5.contains("QT",Qt::CaseSensitive);//判断一个指定的字符串是否出现过。
        qDebug() << flag1;
        qDebug() << flag2;
    
        QString str6="125";
        bool ok;
        int hex=str6.toInt(&ok,16);    //将字符串转换为整型数值 ok=true,hex=293
        int dec=str6.toInt(&ok,10);    //ok=true,dec=125
        qDebug() << hex;
        qDebug() << dec;
    
        QString str7="Hello Qt!";
        QByteArray ba=str7.toLatin1();
        qDebug() << ba;
        ba.append("Hello,world!");
        qDebug() << ba.data();
        //提示:Qt5中去除了toAscii()函数,改用toLatin1()函数就可了
        return a.exec();
    }

    二、容器

    QList容器
    #include "mainwindow.h"
    
    #include <QApplication>
    #include <QString>
    #include <QtDebug>
    //容器
    /*
    对于每一个容器类,Qt都提供了两种类型的STL风格迭代器数据类型:
    一种提供只读访问;另一种提供读写访问。
    由于只读类型的迭代器的运行速度要比读写迭代器的运行速度快,
    建议尽可能使用只读类型的迭代器。
    QList<T>::const_itertor 只读迭代器类
    QList<T>::itertor 读写迭代器类
    */
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        QList<QString> list;//指针数组 数组存储的指针指向QList<T>存储的列表项的内容
        {
            QString str("this is a test QString list");
            list<<str;//通过<<操作符将一个QString字符串存储在该列表中
        }
        qDebug()<<list[0]<<"Hello Qt!";
        return a.exec();
    }

    QMap类和QHash类

    QMap类和QHash类具有非常类似的功能,他们的差别仅在于:

      1、QHash具有比QMap更快的查找速度

      2、QHash以任意顺序存储数据项,而QMap总是按照Key顺序存储数据;

      3、QHash的键类型Key必须提供operator==()和一个全局的qHash(Key)函数,而QMap的键类型Key必须提供operator<()函数。

    #include <QCoreApplication>
    
    #include <QString>
    
    #include <QtDebug>
    
    int main(int argc, char *argv[])
    
     {
    
        QCoreApplication a(argc, argv);
    
         QMap<QString,QString>map;
    
         map.insert("lili","1990");
    
         map.insert("wangli","1992");
    
         map.insert("zhangli","1989");
        
         QMap<QString,QString>::const_iterator i;
    
         for(i=map.constBegin();i!=map.constEnd();i++)
    
             qDebug()<<" "<<i.key()<<" "<<i.value();
    
         QMap<QString,QString>::iterator mi;
    
         mi=map.find("lili");
    
         if(mi!=map.end())
    
             mi.value()="1995";
    
         QMap<QString,QString>::const_iterator modi;
    
         for(modi=map.constBegin();modi!=map.constEnd();modi++)
    
             qDebug()<<" "<<modi.key()<<" "<<modi.value();
    
         return a.exec();
    
     }    

    三、算法

    常用算法在Qt的<QtAlgorithm>和<QtGlobal>模块中

     1 #include <QCoreApplication>
     2 #include <QString>
     3 #include <QtDebug>
     4 int main(int argc, char *argv[])
     5 {
     6     QCoreApplication app(argc, argv);
     7     double a=-19.35,b=5.6;
     8     double c=qAbs(a); //取绝对值
     9     double max=qMax(b,c); //取最大值
    10 
    11     int bi=qRound(b);  //取整
    12     int ci=qRound(c);
    13 
    14 
    15     qDebug()<<"a="<<a;
    16     qDebug()<<"b="<<b;
    17     qDebug()<<"c=qAbs(a)= "<<c;
    18     qDebug()<<"qMax(b,c)= "<<max;
    19     qDebug()<<"bi=qRound(b)= "<<bi;
    20     qDebug()<<"ci=qRound(c)= "<<ci;
    21 
    22 
    23     qSwap(bi,ci);     //交换值
    24     qDebug()<<"qSwap(bi,ci): "<<"bi= "<<bi<<"ci= "<<ci;
    25 
    26     return app.exec();
    27 }

    四、Qt的控件

    在Qt5中,可以使用QDateTime类类获取系统的时间。通过QdateTime::currentDateTime()来获取本地系统的时间和日期吸纳好。可以通过date()和time()来返回datetime中的日期和时间部分,代码如下

    1 Qlabel *datalabel = new Qlabel();
    2 QdateTime *datatime=new QdateTime(QdateTime::currentDateTime());
    3 datalabel->setText(datatime->date().toString());
    4 datalabel->show();

    Qlabel类

     #include <QLabel>
    #include <QDateTime>
    
    QLabel *datalabel = new QLabel();//创建
    //数据
    QDateTime *datatime=new QDateTime(QDateTime::currentDateTime());
    //显示
    datalabel->setText(datatime->date().toString());
    datalabel->show();

    QDateTime类 获取时间

    #include <QDateTime>
    
    QDateTime *datatime=new QDateTime(QDateTime::currentDateTime());
    qDebug()<<datatime->date().toString();

    Qtimer类   定时器

  • 相关阅读:
    VirtualBox下Ubuntu更改分辨率方法
    Asp.Net防止刷新重复提交数据小记
    耻辱名单新成员,腾讯QQ影音违反开源协议遭谴责
    赛门铁克BERS 2010新增Linux备份还原
    开源邮件服务解决方案 iRedMail0.6.0beta1 发布,支持 FreeBSD
    防止ASP.NET按钮多次提交代码
    与省局网站备案管理系统接口规范试行版文件下载地址
    2010预测:开源ERP难有大作为
    ASP.NET对IIS中的虚拟目录进行操作
    C#三种模拟自动登录和提交POST信息的实现方法
  • 原文地址:https://www.cnblogs.com/luckytimor/p/14926531.html
Copyright © 2011-2022 走看看