首页 > 其他分享 >QT基础(B站自学笔记)

QT基础(B站自学笔记)

时间:2024-04-04 15:32:42浏览次数:21  
标签:argc QT int str1 argv 笔记 自学 include QString

1.程序运行原理

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;  //创建窗口对象w
    w.show();      //显示窗口
    return a.exec(); //进入事件循环
}

2.QOBJECT宏

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT   //使用信号槽或者定义信号槽,帮助通信,必须是qobject的子类

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

3.元编译系统

/*  MOC 元编译系统
 *  特殊关键字 signals,slots(槽函数),emit(发送信号)
 *  在预编译前,用元编译器moc.exe,把QT的代码变成c++兼容的代码,
 *  再由c++编译器处理
*/

4.QString的使用

PS:这个要创建控制台项目

4.1字符串---->数字,并计算

#include <QCoreApplication>
#include <QDebug>  //要计算,要带这个
//采用unicode编码,每一个字符是一个16位的Qchar
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QString str1="123";
    QString str2="123";
    //数据转换,转成整型
    int a1 = str1.toInt();
    int a2 = str2.toInt();

    qDebug() << a1+a2;

    return a.exec();
}

4.2数值---->QString

#include <QCoreApplication>
#include <QDebug>  //要计算,要带这个
//采用unicode编码,每一个字符是一个16位的Qchar
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    int a1 = 20;
    QString str1 = QString::number(a1,2);
    //默认为十进制,自己设置的是2进制
   qDebug()  << str1;

    return a.exec();
}

4.3字符串的拼接

#include <QCoreApplication>
#include <QDebug>  //要计算,要带这个
//采用unicode编码,每一个字符是一个16位的Qchar
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QString str1 = " hello";
    QString str2 = " world";

   qDebug()  << str1 + str2;
   //其他方法 append(在后面接上去) prepend(在前面接上去)
   //str1.append(str2);
  // qDebug()  << str1;

  str1.prepend(str2);
   qDebug()  << str1;


    return a.exec();
}

4.4转换大小写

#include <QCoreApplication>
#include <QDebug>  //要计算,要带这个
//采用unicode编码,每一个字符是一个16位的Qchar
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QString str1 = " Hello";

    QString str2 = str1.toLower();

    qDebug() << str2;

    QString str3 = str1.toUpper();

    qDebug() << str3;

    return a.exec();
}

4.5判断字符长度

#include <QCoreApplication>
#include <QDebug>  //要计算,要带这个
//采用unicode编码,每一个字符是一个16位的Qchar
int main(int argc, char *argv[])
{   //判断字符长度 count size length
    QCoreApplication a(argc, argv);

    QString str1 = " Hello   world ";

   int len1=str1.count();
   int len2=str1.size();
   int len3=str1.length();
    qDebug() << len1;
    qDebug() << len2;
    qDebug() << len3;
   //去除字符中的空格
      QString str2 =str1.trimmed();//去除收尾的空格
    qDebug() << str1;
    qDebug() << str2;
     int len4=str2.count();
     qDebug() << len4;
      QString str3 =str1.simplified();
      //首位空格去掉所有的空格用一个空格代替
      qDebug() << str3;
    return a.exec();
}

4.6判断字符串是否是空的

#include <QCoreApplication>
#include <QDebug>  //要计算,要带这个
//采用unicode编码,每一个字符是一个16位的Qchar
int main(int argc, char *argv[])
{   //判断是否为空 isNull isEmpty,推荐使用isEmpty
    QCoreApplication a(argc, argv);

    QString str1;
    QString str2="";//包含一个\0

      qDebug() << str1.isNull();
      qDebug() << str1.isEmpty();

      qDebug() << str2.isNull();
      //能识别出\0
      qDebug() << str2.isEmpty();
    return a.exec();
}

4.7判断是否包含某个字符串

#include <QCoreApplication>
#include <QDebug>  //要计算,要带这个
//采用unicode编码,每一个字符是一个16位的Qchar
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QString str1="hello world ";
    //查看是否包含world,不区分大小写
     bool iscon=str1.contains("world",Qt::CaseSensitive);
      qDebug() << iscon;

    return a.exec();
}

4.8判断是否以特定的后缀开头,结尾

#include <QCoreApplication>
#include <QDebug>  //要计算,要带这个
//采用unicode编码,每一个字符是一个16位的Qchar
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QString str1="hello world.mp4";
    //查看是否以特定的后缀结尾,区分大小写
     bool ismp4=str1.endsWith(".mp4",Qt::CaseSensitive);
      qDebug() << ismp4;


    //查看是否以特定的字符串开头,区分大小写

      bool ish=str1.startsWith("h",Qt::CaseSensitive);
       qDebug() << ish;
    return a.exec();
}

标签:argc,QT,int,str1,argv,笔记,自学,include,QString
From: https://blog.csdn.net/2301_76859795/article/details/137373415

相关文章

  • QT创建工程
    step1:step2:step3:step4:step5:出现了文件显示不全的问题:解决方法:......
  • Qt C++ | Qt 元对象系统、信号和槽及事件(第一集)
    01元对象系统一、元对象系统基本概念1、Qt的元对象系统提供的功能有:对象间通信的信号和槽机制、运行时类型信息和动态属性系统等。2、元对象系统是Qt对原有的C++进行的一些扩展,主要是为实现信号和槽机制而引入的,信号和槽机制是Qt的核心特征。3、要使用元对象系统......
  • Qt | 发布程序(以 minGW 编译器为例)
    1、注意:修改pro文件后,最好执行“构建”>“重新构建项目”,否则pro文件的更改将不会反应到程序上。2、发布程序的目的:就是让编译后生成的可执行文件(如exe文件),能在其他计算机上运行。一、编译后生成的各种文件简介QtCreator 构建项目后产生的文件及目录见下图......
  • Make编译之编译32bit Qt
    使用Make指定工具链编译Qt简要叙述下过程,避免以后在遇到相似有大致思路顺序总结:获取工具链下载Qt源码;拷贝qtsrc/qtbase/mkspaces/一份文件夹;用实际使用的工具链名称重新命名上一步拷贝的文件夹;编辑重新命名后文件夹内的qmake.conf文件,使用指定的编译器绝对路径;在qtsrc/......
  • 《C++程序设计》阅读笔记【2-程序结构】
    ......
  • [算法学习笔记] 线段树
    前言线段树可以维护一系列区间问题。包括但不限于区间加,区间乘,区间最值等。本文主要介绍最基础的区间修改区间查询。你可以认为是模板线段树的解析。本文将持续更新。例题给定一个数列,需要支持如下两种操作:\(1\)\(x\)\(y\)\(k\)将区间\([x,y]\)中每一个数加\(k\)......
  • 使用fusesource的mqtt-client-1.7-uber.jar,mqtt发布消息出去,接收端看到的是中文乱码,如
    ......
  • SpringMVC学习笔记
    1、概述基于java实现的实现mvc模型的轻量级web框架SpringMVC是一种表现层的框架技术,用于web层的功能开发,是对Servlet进行的封装主要的作用是接收请求和数据,响应结果,所以如何处理请求和响应是SpringMVC的重点​ 之前的开发将后端服务器Servlet拆分成三层,分别是web、service......
  • 稀碎从零算法笔记Day37-LeetCode:所有可能的真二叉树
    今天的每日一题,感觉理解的还不够深,有待加深理解题型:树、分治、递归链接:894.所有可能的真二叉树-力扣(LeetCode)来源:LeetCode题目描述给你一个整数 n ,请你找出所有可能含 n 个节点的 真二叉树 ,并以列表形式返回。答案中每棵树的每个节点都必须符合 Node.val==0 ......
  • 稀碎从零算法笔记Day36-LeetCode:H指数
    有点绕的一个题,题目描述的有点奇怪(可以看下英文?)题型:数组、模拟链接:274.H指数-力扣(LeetCode)来源:LeetCode题目描述给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。根据维基百科上 h指数......