Qt(1)

一. Qt简介

1.Qt是什么
图形用户程序框架,是对底层应用编程接口API面向对象的封装
是一套基于C++语言的类库,专注但不局限于图形用户界面的开发,也可以进行系统调用,网络编程,数据库,2D/3D图形处理
特点:跨平台,支持Linux,windows,MacOS,iOS,Android等操作系统

2.为什么选择Qt
基于C++语言,简单,易用,面向对象(针对GTK)
优良的跨平台特性(针对MFC),工控,嵌入式

二.Qt环境与编译工具

1.工具
Qt助手:Qt参考文档,涉及了Qt中的每一个类和函数,是Qt开发的必备手册,在终端可以通过assistant命令启动
Qt构建器:它负责,对源文件,头文件界面文件进行解析生成编译脚本
qmake -project 根据目录里的文件,生成项目配置文件,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安装好之后会在安装目录下创建一个/usr/include/qt4目录,我们所使用的头文件都在这个目录下
共享库安装在/usr/lib/i386-linux-gnu/qt4和/usr/lib/qt4目录下
静态库需要重新下载源手动编译

三.第一个Qt程序

1.Hello,Qt
编译源代码
生成项目文件:qmake -project ->hello.pro
生成编译脚本:qmake ->Makefile
编译:make
运行:./hello

2.帮助手册
Public Types:访问权限是public的成员
Properties:访问权限是 private的成员
Public Functions:访问权限是public的成员函数
Public Slots:访问权限是public的槽函数,它可以像成员函数一样使用,但它可以与信号连接(与signal函数绑定一个信号与函数一样),区别是Qt的信号可以自定义
Signals:信号 注意:不是函数,通过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);
//告诉Qt程序中所使用的字符串的字符编码
QTextCodec::setCodecForCStrings(codec);
//告诉Qt外部的字符编译
QTextCodec::setCodecForTr(codec);

五.信号与槽

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

2.槽
槽就是一个普通的成员函数,它可以是公有的,私有的,保护的,可以被重载,也可以被覆盖,其参数,返回值可以是任意类型,可以被直接调用
与普通函数的区别就是它可以被信号触发,自动执行
如:窗口控件QWidget中默认就有 close(void) 槽函数

3.信号与槽的连接
注意:QObject是Qt中所有类的父类,
bool QObject::connect (
const QObject * sender, //信号发送者
const char * signal, //信号签名字符串,复制或自动提示
const QObject * receiver, //信号的接收者
const char * method); //槽函数签名字符串,复制或自动提示

SIGNAL() 将信号函数签名转换成字符串
SLOT() 将槽函数签名转换成字符串

六.窗口容器

从上午的案例可以看出,一个控件就是一个窗口,要想把所有的控件集合在同一个窗口中,那么就需要把这些控件束缚在同一个容器中,这种容器就叫窗口容器
1.QManWindow
主窗口容器,通常由标题栏,菜单栏,工具栏,状态栏和中央显示区组成
2.QDialog
对话框窗口容器,管理多个不同交互式控件
3.Qwidget
纯粹的窗口容器,它是QManWindow和QDialog父类
常用的设置有:
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名字空间中自动创建MainWindow类,
Ui_MainWindow会被MainWindow类的继承

mainwindow.h头文件会自动创建MainWindow类默认继承QMainWindow,会有一个默认成员Ui::MainWindow *ui,它里面有所有界面文件中的控件

八.Qt常用控件

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

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

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

你可能感兴趣的:(Qt(1))