Qt学习总结

第一天

1.  Qt简介

  Qt5模块简介:

 

Qt Widgets:窗口有关的类;

Qt Webkit:网络相关的类;

 Qt Test:测试模块;

Qt SQL:数据库相关类;

Qt Quick & Qt  QML & Qt Quick Controls & Qt  QML Dialogs :嵌入式应用程序开发  js开发(智能家居)

Qt Mulitmedia Widgets:媒体相关;

Qt Core & Qt GUI:基础模块;

Qt Network:网络相关类;比如套接字

Qt Mulitmedia:媒体播放相关;

 

常用快捷键:

1)帮助文档:F1(光标在函数名字或类名上,按F1即可跳转到对应的帮助文档,查看其详细用法,5.14.0有时打不开,先F2再F1)

2).h文件和对应.cpp文件切换:F4

3)编译和运行:Ctrl + R

4)函数声明和定义(函数调用和定义)切换 :F2

5)代码注释取消注释:Ctrl + /   (选中代码再按快捷键)

6)字体变大变小:Ctrl + 鼠标滚轮向上或向下

7)移动代码:选中所要移动的代码  ->  按住Ctrl + Shift + 键盘上下方向键  即可上下移动。主要用于linux平台

8)查找替换关键字:Ctrl + f

9)快速打开代码所在目录:编辑模式下  ->  选中项目文件  ->  右击  ->  选择“显示包含的目录”,即可显示项目所在目录(此方法同样可以打开代码文件所在目录)

 

2.  创建Qt程序

  1>. 一个Qt程序的组成部分:至少有两个基本类 应用程序类、窗口类

  2>. 应用程序类个数:有且只有一个QApplication a;

  3>. 如何查看类对应模块:光标移动到类上,按F1; qmake += 模块的名字

3.  第一个Qt程序

  1>. 在窗口中添加按钮

    类名:QPushButton

    设置按钮显示的内容:setText

    移动按钮位置:move

    按钮设置父窗口:setParent

    设置窗口大小:       可改变的大小:resize()、           固定大小: resizeFixed();

  2>. Qt的坐标体系

    坐标原点:左上角

    x轴延伸的方向:向右递增

    y轴延伸的方向:向下递增

  3>. Qt内存回收机制

    满足什么条件下的类不需要用户手动释放内存?

    1、由QObject类直接或间接派生

    2、给直接或间接派生出的类,指定父对象

4.  信号和槽   *****

  1 >. 格式:connect(信号发出者对象(指针), &className::clicked, 信号接收者对象(指针), &classB::slot);

  2 >. 标准信号槽的使用:选中对象按F1,查看Signals

  3 >. 自定义槽函数:

    a. 返回值是void;

    b. 可以重载;

    c. 需要跟信号对应, 个数少于等于信号的参数;

  4 >. 自定义信号:

    a. 返回值是void;

    b. 可以重载;

    c. 需要使用一个关键字声明:   signals:        (发送信号:  emit + 信号名;)

    d. 不需要函数定义

  5 >. 带参数的信号(槽):

    1. 重载的时候: 信号槽发生了重载, 需要使用函数指针(需要加作用域)

    2. qt4信号槽的使用:两个宏 SIGNAL(信号的函数名(int,  long))  SLOT(槽函数名(int, long))    缺点:不能做错误检查,槽函数名称有误也不会报错

    connect链接  重载过的信号和槽的解决方法
  6 >. Qt4信号槽的链接方法:Qt4的槽函数必须使用public/protected/private slots:即,使用自定义槽函数时,需要在前面加上 public solts:

  7 >. 拓展:

    a、信号可以连接信号; (连接方式跟连接槽函数方式一样,就是把槽函数替换成信号就行,但是要注意一点,后面的信号参数需要跟前面对应)

    b、一个信号可以连接多个槽函数(连接多个槽函数时,连接是有顺序的,但是执行时是随机的)

    c、多个信号可连接同一个槽函数

    d、槽函数可以使用lambda表达式

5.  lambda  表达式   *****

  [=](参数)

  {

    函数实现
  }

  用前需要在.pro文件中添加一次 CONFIG += c++11

 

第二天

1.  QMainWindow   ***

  1 >. 菜单栏

  2 >. 工具栏

  3 >. 浮动窗口和核心部件

  4 >. 状态栏

2.  QDialog   ***

  1 >. 模态对话框

  2 >. 非模态对话框

  3 >. 标准对话框和文件对话框

  4 >. 文件对话框的使用

      a. 打开文件对话框

      b. 保存文件对话框

      c. 打开目录对话框

3.  布局   ***

  1 >. 水平布局

  2 >. 垂直布局

  3 >. 网格布局

4.  常用控件   ****

  1 >. 按钮  -- QPushButton

  2 >. 单选按钮 -- Radio Button

  3 >. 复选按钮 -- Check Button

  4 >. 列表按钮 -- List Widget

5.  自定义控件   ****

6.  事件处理器函数   *****

  1 >. 使用事件处理器函数,第一步要做什么?

  2 >. 一些常用事件

    a. 鼠标进入

    b. 鼠标离开

    c. 鼠标按下

    d. 鼠标释放

    e. 鼠标移动

    f. 定时器

      1. 启动定时器

      2. 关闭定时器

      3. 出发定时器操作

7.  事件分发器 -- event()函数   **

  1 >. 事件分发器的作用?

  2 >. 函数返回值

  3 >. 

8.  事件过滤器   **

  1 >. 函数返回值?
  2 >. 如何使用事件过滤器?

9.  不规则窗体的实现

 

第四天

1.  文件操作

  1 >. 使用文件类对文件进行操作:QFile

    a. 打开文件

    b. 读文件

    c. 写文件

    d. 关闭文件

  2 >. 文本流: QTextStream

    a. 侧重于文本读写: QChar, QString, int 等基层数据类型

    b. 属于轻量级的流操作类

  3 >. 数据流: QDataStream

    a. 侧重于数据格式和类型

    b. QTextStream能做的事儿 QDataStream都能做

    c. 可以对特定格式的类型数据进行完美的输入输出

    d. 几乎Qt支持的所有类型都可以使用QDataStream进行操作

    e. 与平台无关

2.  Scoket通信

  1 >. TCP通信流程

    a. 服务器端

    b. 客户端

  2 >. UDP通信流程

    a. 服务器端

    b. 客户端

 

posted @   大白不会敲代码  阅读(151)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示