Qt 常用函数一

一.窗体类——QWidget

1.setWindowTitle()

看函数名应该也知道这个函数的功能,设置窗口的标题。

函数原型:

void setWindowTitle(const QString &);    //传入一个字符串作为窗口的标题

在这里插入图片描述

2.setWindowModality()

该函数功能为设置窗口模态。

函数原型:

void setWindowModality(Qt::WindowModality windowModality);

WindowModality 是一个枚举值。它有三个值。

在这里插入图片描述
设置为 Qt::NonModal 不阻塞任何窗口,设置为 Qt::WindowModal 值阻塞父窗口,设置为 Qt::ApplicationModal 阻塞所有窗口。阻塞窗口意味着你只有处理完当前窗口的操作才能操作其它窗口。

3.setWindowFlags()

该函数功能为设置窗口风格。

void setWindowFlags(Qt::WindowFlags type);

在这里插入图片描述

二.标签类——QLable

1.设置文本

1.在设计模式下通过 Ui 指针访问控件。

ui->label->setText("我是文本");

2.设置数字

 ui->label_4->setNum(3.1415);

3.设置图片

ui->label_2->setPixmap(QPixmap("tree.png"));   //传入一个 QPixmap 对象作为参数

4.设置动图

QMovie* movie = new QMovie("cat.gif");
ui->label_3->setMovie(movie);
movie->start();

三.布局管理器——QFormLayout

简单介绍一下怎么使用布局管理器,首先要设置你要添加的部件,如 lable 标签;edit 行编辑器;radio 按钮等部件。然后加入到布局管理器中,将这些部件设置成你想要的格式,再将该布局管理器添加到某个窗口上,窗口显示时,布局管理器设置好的布局也会显示。或者不用显示的添加,在布局管理器构造的时候直接指定它的父窗口,这样,它也会在指定的父窗口上显示,如:m_Layout=new QGridLayout(this); 。指定当前窗口为它的父窗口。

部件管理器添加部件:

headerLayout->addRow(lable,edit);

窗口添加部件管理器:

W1.setLayout(headerLayout);

四.QString——字符串类

1.初始化字符串

    QString str("字符串");   //形式1
    QString str1="字符串1";   //形式2
    QString str2=str1;    //形式3

2.QString 转换成其它类

    QString text="555";
    int tmp=text.toInt();   //转换成 int 类型

    double tmp1=text.toDouble();    //转换成 double 类型

    text="555.555";
    float tmp2=text.toFloat();    //转换成 float 类型

3.重载 ‘+’ 号运算符

QString 类重载了加号运算符,使之可以直接进行字符串的拼接。

QString str="我是普通字符串";
    qDebug()<<str<<endl;

    str=",我可以使用 + 拼接字符串"+str;   //拼接在字符串前面
    qDebug()<<str<<endl;

    str+=",也可以这样拼接";     //拼接在字符串后面
    qDebug()<<str<<endl;
    QString str=" ";
    str.prepend("Hello");  //首部添加
    str.append("World");   //尾部追加

4.插入函数与替换函数

插入函数:

    QString str="Hello";
    str.insert(5,"World");
    qDebug()<<str<<endl;

替换函数:

    QString str="Hello";
    str.replace(0,5,"World");
    qDebug()<<str<<endl;

5.分割函数

    QString str="2022/4/10";
    QStringList timeList=str.split("/");   //以 ‘/’ 为分割符,用字符串链表接收分割后的字符串
    foreach (QString ss, timeList) {
        qDebug()<<ss;
    }

五.QStringList——字符串链表类

1.将字符串加入链表

两种形式,可以通过 append() 函数添加,也可以使用 “<<” 运算符直接加入。

    QStringList list;
    
    list.append("第一题");    //通过 append() 函数添加
    list.append("第二题");

    list<<"第三题"       //使用 “<<” 运算符直接加入
        <<"第四题"
        <<"第五题";

2.访问链表元素

可以通过 .at() 方法访问链表元素,也可以通过 【】 运算符直接访问。

    for(int i=0;i<list.size();++i)
        qDebug()<<list[i];

    for(int i=0;i<list.size();++i)
        qDebug()<<list.at(i);

3.删除与插入元素

    list.removeFirst();    //删除链表首元素
    list.removeLast();     //删除链表尾元素
    list.removeOne("第二题");    //删除指定元素
    list.removeAt(3);    //通过下标删除指定元素
    list.insert(0,"第一题");   //插入元素
    list.clear();        //清除所有元素

六.QList 类——链表容器类

上述 QStringList 能用的方法它都能用,而不同于 QStringList 的是 QList 容器能存储的不止 QString 类对象,还能存储很多基本的数据类型。

下文只介绍在介绍 QStringList 类时没有提到的一些方法。

1.读写迭代器

即使用该迭代器既可以修改容器数据又可以读取容器数据。

    QList<int>::iterator it=list.begin();
    for(it;it!=list.end();++it){

        (*it)++;     //通过迭代器修改数据
        qDebug()<<*it<<endl;   //通过迭代器读数据
    }

2.只读迭代器

    QList<int>::const_iterator c_it=list.constBegin();
    for(c_it;c_it!=list.end();++c_it){

        qDebug()<<*c_it<<endl;   //可以通过迭代器读取数据
        *c_it=*c_it+1;     //不能通过该迭代器修改数据
    }

七.QLinkedList 类

QLinkedList 类继承自 QList 类,它不能通过 .at 方法和 [ ] 访问链表中元素。QList 类可以是因为它的底层维护了一个指针数组,分别指向链表中的元素。但 QLinkedList 类中没有这个指针数组。在链表需要存储很多元素的时候使用 QLinkedList 类效率会比 QList 高,因为它不需要维护底层指针数组的额外开销。

  • 2
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值