Qt(简介)

一、Qt简介

  1. Qt是什么
    Qt图形用户程序框架,是对底层应用程序编程接口API面向对象的封装,是一套基于C++语言的类库,专注但不局限于图形用户界面的开发
    也可以进行系统调用、网络编程、数据库、2D/3D图形处理。
    特点:跨平台,支持Linux,windows、MacOS、iOS、Android等操作系统
  2. 为什么选择Qt
    基于C++语言,简单易用,面向对象(针对GTK)
    优良的跨平台特性(针对MFC),工控、嵌入式方面应用比较多

二、Qt环境与编译工具

  1. 工具
    Qt助手:Qt的参考文档,涉及了Qt中的每一个类和函数,是Qt开发的必备手册,在终端可以通过assistant命令启动
    Qt构建器:负责,对源文件、头文件、界面文件进行解析生成编译脚本,qmake。
    qmake -projecct 根据当前目录的文件,生成项目配置文件 生成xxx.pro
    qmake 根据xxx.pro文件生成Makefile脚本
    Qt设计师:对于带界面应用程序来说,最纯粹的方式是通过C/C++代码来编写整个项目,但这种方法比较费时费力,所以
    我们一般不这样做界面,而是采用画图的方式,自动生成对应的代码,也称为所见即所得。
    Qt界面编译师:它负责把Qt设计师设计出的界面文件编译成C++代码。
    uic xxx.ui -o xxx.h 把界面文件编译成C++类
    Qt创造器:Qt助手 + Qt构建器 + Qt设计师 + Qt界面编译器 + 文本编辑器 就等于Qt创建器,集成开发环境。
  2. 头文件和库
    Qt安装好以后会在安装目录下创建一个/user/include/qt4目录,我们所使用的头文件都在这个目录下。
    共享库安装在/user/lib/i386-linux-gnu/gt4和user/lib/qt4
    静态库要重新下载源代码手动编译。

三、第一个Qt程序

  1. Hello,Qt。
    编译源代码
    生成项目文件qmake -project
    生成编译脚本 qmake
    编译:make
    运行 ./hello
  2. 帮助手册
    public Types:访问权限是public的成员
    Properties:访问权限是private这一类的成员都get/set成员函数
    Public Functions:访问权限是 public 的成员函数
    Public Slot:访问权限是public的槽函数,它可以向成员函数一样使用,但它可以与信号连接(与signal函数绑定一个信号与函数一样)
    区别是Qt信号可以自定义。
    Signal:信号,注意:不是函数,通过emit发送,会自动执行与它连接的槽函数。
    Static Public Members:静态公有成员函数,这类函数与对象无关,管理的是对象的公共资源
    Protected Functions:访问权限是 protected的成员函数
    Macros:与本类相关的宏定义
    Detailed Description:对本类的详细说明,使用方法,调用的上下文注意事项,有些类会有使用dome

四、中文处理

注意:在Qt4.8中默认不支持 utf-8 字符编码,因此使用中文时,会出现乱码。
内部编码与外部编码:
Qt的应用程序的控件内部所使用的都是utf-16,这叫做应用程序的内部编码,而我们通过终端输入的字符串叫外部编码
QTextCodec *codec = QTextCodec::codecForName(“utf-8”);
//告诉Qt本地系统字符编码
QTextCodec::setCodecForLocale(codec);
//告诉程序中所使用的字符串的字符编码
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);

五、信号和槽

  1. 信号
    当用户或者系统触发一个动作,导致某个窗口发生变化,该控件就会发送一个信号,信号就可以调用一个函数,必要时,还可以附加参数
    QPushButton 控件中就有clicked(void)信号。

  2. 槽就是一个普通的类成员函数,它可以是共有的、私有的、保护的,可以被重载也可以被覆盖,其参数、返回值可以是任意类型,也可以被直接调用。
    与普通函数的区别就是它可以被信号触发,自动执行。
    如:窗口控件QWidget中默认就有close(void)槽函数
  3. 信号和槽的连接
    QObject是Qt中所有类的父类
    bool connect(
    const QObjectsender,//信号发送者
    const char
    signal,//信号签名,复制或者自动提示
    const QObject receiver,//信号的接收者
    const char
    method);//槽函数签名
    SIGNAL()将信号函数签名转换成字符串
    SLOT将槽函数签名转换成字符串

六、窗口容器

从以上案例可以看出,一个控件就是一个窗口,要想把所有控件集合在同一个窗口中,那么就需要把这些控件束缚在同一个容器中,这种容器就叫窗口容器

  1. QMainWindow
    主窗口容器,通常由标题栏菜单栏、工具条、状态栏、中央显示区
  2. QDialog
    对话框窗口容器,管理多个不同的交互式控件。
  3. QWidget
    纯粹的窗口容器,它是以上窗口容器的父类。
    常用的设置有:
    resize(w,h)设置容器窗口的大小
    move(x,y)设置窗口的位置
    创建控件时,把容器对象的地址给控件,就可以把控件放到容器中

七、Qt创造器的使用

  1. 打开Qt创造器
    在终端执行:qtcreator,右键锁定到启动器
  2. 创建项目
    文件->新建文件或者工程->Qt控件项目->Qt Gui应用->填写项目名称(不能是中文)->桌面->窗口容器->设置类名、头文件名、源文件名->是否选择创建界面文件
    (设置界面文件名)
  3. 窗口类的构成:
    mainwindow.ui 文件会自动生成 ui_mainwindow.h(在Qt创造器中不可见)。
    ui_mainwindow.h 头文件中会自动生成 Ui_MainWindow类,该类中会包含所有mainwindow.ui文件中所画的控件。
    在ui_mainwindow.h头文件中会在Ui名字空间中自动创建MainWindo类,Ui_MainWindow会被MainWindow类继承。
    mainwindow.h头文件中会自动创建MainWindow类,默认继承QMainWindow,会一个默认的成员Ui::MainWindow *ui,它里面有所o界面文件中的控件。

八、Qt常用控件

QLabel:标签控件,用来显示简单的文本,在界面上是只读的
常用操作有:setText(QString):设置显示内容
Text:获取标签上的字符串,返回值是QString
QPushButton:按钮控件
常用操作有:setText(QString):设置显示内容
Text:获取标签上的字符串,返回值是QString
重要的功能有单击信号clicked()
也有双击、悬停、按下、弹起信号
QRadioButton:单选按钮,同窗口下只能有一个被选中
重要功能是选中和取消选中信号
QLineEdit:单行输入文本框
常用操作有获取输入内容
QTextEdit:多行输入文本框
常用于输入大段文字,可以换行。
自带滚动条
QComboBox:下拉输入框
它输入的内容只能通过下拉按钮选择,只防止用户输入错误常用解决方法
QTextBrower:多行文本显示,支持富文本显示
文字可以设置字号、字体、颜色、加粗等操作,在界面上是只读的
QGroupBox:分组框,可以放入一个控制统一管理。
最常用的是放入QRadioButton按钮,一组的按钮只能有一个被选中
QCheckBox:多选框
QXXXSlilder:滑块
有水平、垂直滑块,可以当作进度条使用。
QSpinBox:数字滑块,
与Silder的用法基本一致,只是它以数字显示。
Silder的SpinBox的主要操作是:初值、最大值、进度值

九、Qt创造器常用快捷键以及操作

快捷键:
Alt+0:显示/隐藏侧边栏
ctrl+e:松开后按0:删除所有的分割窗口
ctrl+e:松开后按2:水平分割窗口
ctrl+e:松开后按1:删除当前的分割窗口
ctrl+e:松开后按3:垂直分割窗口
ctrl+B:编译执行
ctrl+B+S:保存所有文件并编译执行
ctrl+R:运行项目
ctrl+/:注释或者取消注释
ctrl+I:自动缩进选中代码
ctrl+shift+R:批量修改变量名
ctrl+F:搜索并替换
ctrl+单击:跳转到定义位置
shift+F2:声明与定义之间进行切换
Alt+u:大写转小写
Alt+shift+u:小写转大写
F1:打开帮助手册,光标定义在类或对象上,打开对类的帮助手册
F4:头文件和源文件之间快速切换

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值