Qt学习01

一、Qt简介
1、Qt是什么
图形用户界面应用程序开发框架,是对底层应用编程接口进行了面向对象的封装
是一套基于C++语言的库,专注但不限于图形用户界面程序开发,还可以进行系统调用、网络编程、数据库、2D/3D图形处理
2、为什么选择Qt
基于C++语言,使用简单、易用,有优秀的跨平台特性,支持Linux系统、Windows系统、MacOS系统、iOS系统、Android系统

二、Qt环境以及工具
Qt助手:Qt参考手册,Qt所有类、函数,相当于man手册
Qt构造器:负责对源文件、头文件、界面文件进行解析并自动生成Makefile
qmake
Qt设计师:对于应用程序开发而言,最开始、最纯粹的方式是通过C/C++代码来编写整个项目,但是这种方式费时费力,所以一般不会这样去做界面程序,而是通过画图、鼠标操作方式,自动生成对应的界面代码,所见即所得,设计完成后会得到一个xxx.ui界面文件
Qt界面编译器:负责把Qt界面文件翻译成C++编译器认识的C++代码

Qt创造器 = Qt助手+Qt构造器+Qt设计师+Qt界面编译器+文本编辑器,一个集成开发环境

三、第一个Qt程序
1、新建项目
打开Qt Creator 文件->新建文件或项目->Appliction->Qt Widget Appliction->输入项目名(不要有中文)、选择项目路径(路径中不要有中文)->选择编译器(默认即可)->输入默认的窗口类名、文件名(一般选择Widget即可)->完成
2、编写代码
QApplication a(argc, argv); //创建Qt应用程序对象
Widget w; // 创建窗口对象

    QLabel* lab = new QLabel(&w);   //  创建标签对象,并放入窗口w中
    lab->setText("Hello Qt");   //  设置文本内容
    //lab->show();                //  显示标签控件

    w.show();   //显示窗口
    return a.exec();    //  开始运行Qt程序
3、保存编译运行
    1、点击绿色按钮
    2、Ctrl+r

四、Qt创造器的常用快捷键
Ctrl+单击/F2 跳转到定义位置
Alt+Enter 对光标处的函数声明进行快速定义
Ctrl+i 快速调整代码格式
Ctrl+/ 注释、取消注释
Ctrl+f 搜索、替换
Ctrl+Shift+r 批量修改标识符名,Enter键确认
F4 在自定义的头文件、源文件之间切换
F1 查看光标处Qt类的帮助手册
Alt+0 显示或隐藏侧边栏
Shift+Alt+u 小写转大写
Alt+u 大写转小写
Ctrl+a Ctrl+c Ctrl+z Ctrl+v Ctrl+s

五、Qt帮助手册
Header:需要包含的头文件
qmake:需要依赖的模块,在xxx.pro文件中添加
Inherits:父类
Inherited By:子类
Properties:成员变量、父类中的成员变量
Public Functions:公开属性的成员函数
Reimplemented Public Functions:公开属性的需函数
Protected Functions:保护属性的成员函数
Reimplemented Protected Functions:保护属性的虚函数
Public Slots:公开属性的槽函数
Protected Slots:保护属性的槽函数
Signals:该类能够自己发出的信号
Detailed Description:对该类的详细说明

六、窗口容器
通过Hello案例,每个控件例如标签控件都需要有显示容器来承载,如果不提供则Qt会单独提供,因此想要一个整体的界面,就必须把需要的控件集合在同一个窗口中,这种就是Qt的窗口容器
1、QMainWindow 主窗口容器
通常包含标题栏、菜单栏、工具栏、主窗体组成
2、QDialog 对话窗口
会自带一些交互类的控件
3、QWidget 纯粹的窗口容器
以主窗体为主,它是QMainWindow和QDialog的父类

常用设置:
    resize(w,h) 设置窗口大小
    move(x,y)   设置窗口的位置,以屏幕左上角为原点
如何把控件通过代码放入窗口:
    1、创建窗口容器对象
        QWidget* w = new QWidget;
    2、创建控件时,把该窗口对象地址传递给该控件构造函数
        QLabel* lab = new Qlabel(w);
    3、只需要显示窗口,窗口中所有控件默认也会显式
        w->show();

七、Qt中的字符串和输出数据
QString类,具备string类的所有功能
它有一系列的to函数,可以方便地转换成其它类型数据
终端输出数据:
C/C++中的printf/scanf/cin/cout还可以继续使用

八、信号和槽
1、什么是Qt的信号
当用户或者系统满足一定条件或触发某些动作时,导致窗口或者控件、类发生一些改变时,它们就会发射出一个对应的信号。
信号可以预先连接一个特殊的函数,当信号被触发时,就会自动调用该函数,这样的函数就称为槽函数
例如:QPushButton中的单击信号clicked信号
2、槽函数
与普通函数一样,也可以被手动调用,但是一般不会这样调用,而是通过连接信号后,由信号来自动触发
3、信号和槽的连接
信号和槽必须建立connect连接后,才会触发槽函数
QObject::​connect(const QObject * sender, const char * signal, const QObject * receiver, const char * method, Qt::ConnectionType type = Qt::AutoConnection)
sender:信号的发出控件,必须是QObject的子类,例如QPushButton
signal:要连接的信号的签名
通过SIGNAL(信号名()) 把信号转换成信号前面
receiver:信号的接受者,必须是QObject的子类
method:要绑定的槽函数的签名
通过SLOT(槽函数()) 把槽函数转成槽函数签名

    connect函数属于QObject的公开成员函数:
        如果在类外调用,需要声明QObject::connect
    QObject::connect(but,SIGNAL(clicked()),&w,SLOT(on_pB_clicked()));
posted @ 2023-09-22 19:32  优秀还天籁  阅读(36)  评论(0编辑  收藏  举报