您现在的位置是:首页 > 正文

Qt 常用函数一

2024-01-30 23:55:30阅读 0

一.窗体类——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 高,因为它不需要维护底层指针数组的额外开销。

网站文章

  • Java中List和ArrayList的区别及使用

    Java中List和ArrayList的区别 List是一个接口,而ArrayList是List接口的一个实现类 ArrayList类继承并实现了List接口 因此,List接口不能创建实例对象,但是...

    2024-01-30 23:55:23
  • 【华为机试真题 Python实现】华为机试题整理(已更新211篇) 热门推荐

    拆分输出字符串 求n阶方阵里所有数的和 合法的三角形个数 整型数组求整数对最小和 机器人走迷宫【2022 Q1 Q2 |200分】 数格子 两个超大整型数相加 字符串格式化输出【2022 Q1 Q2 ...

    2024-01-30 23:55:17
  • buffer和cache的区别

    buffer和cache的区别

    一,计算机硬件组成 转载自: buffer和cache的区别. 计算机硬件组成:CPU,存储器,输入输出设备(I/O),其他(主板,电源等) CPU:运算器,控制器 存储器:内部存储器(ROM/RAM...

    2024-01-30 23:54:48
  • 测试用例设计方法

    测试用例设计方法

    测试用例设计方法如何全面系统地组织测试等价类是建立在这种思想之上——即我们不可能进行穷举测试,那么我们就 必须对输入进行分类,而这种分类是建立在我们知道计算机程序设计原理和 计算机处理单元的工作原理基...

    2024-01-30 23:54:41
  • JDK的安装与环境变量配置

    JDK安装与环境变量配置JDK介绍JDK (JAVA Development Kit) 是整个Java的核心,包括Java运行环境、Java工具和Java基础的类库。当用户要对Java程序进行编译时,...

    2024-01-30 23:54:34
  • Linux :: 【基础指令篇 :: 用户管理:(3)】::删除用户 :: userdel

    Linux :: 【基础指令篇 :: 用户管理:(3)】::删除用户 :: userdel

    本篇介绍:Linux创建用户基本指令:userdel 的 基本语法、基本用法、注意点及补充:关于新建的用户存储位置(及添加用户操作实例测试)

    2024-01-30 23:54:05
  • vue在生产环境清除console.log

    vue在生产环境清除console.log

    在开发环境中我们喜欢用console.log测试代码,但是部署到生产环境我们不可能一个一个把console.log给手动删除了。在build/webpack.prod.conf.js文件里加上这样一段代码即可new UglifyJsPlugin({ uglifyOptions: { mangle: { ...

    2024-01-30 23:53:58
  • tomcat8启动startup.bat闪退的问题

    今天遇到Tomcat启动startup.bat闪退的问题。看了网上的解决办法大同小异。首先我在cmd中执行了netstat -ano|findstr "8080",并没有找到有占用端口的进程。然后因为我本地存在两个Tomcat版本,一个是8.0一个是8.5,所以我把两个的路径分别写进了系统变量CATALINA_BASE、CATALINA_HOME、TOMCAT_HOME。当然JAVA_HO...

    2024-01-30 23:53:51
  • java~真~四舍五入保留2位小数

    计算个人所得税,需要四舍五入保留2位小数 csdn有很多篇文章讲述了四舍五入保留2位小数的多种方法,经过实测,下面这种方法最准确 通过对多个边缘值的测试,均无问题 public class MathUtil { private MathUtil() { } private static String formatDoubleLeafTwo(double d) { ...

    2024-01-30 23:53:24
  • 使用BootStrap搭建主页

    使用BootStrap搭建主页

    使用Bootstrap来搭建主页

    2024-01-30 23:53:17