1 什么是QT
基于C++语言的框架
一个专注于图形用户界面的框架
一个跨平台的框架
一个艺术级别的开发的工具
2 历史
05年 qt4.0
08年 被nokia收购
09年 开源
qt-project.org
下载相关的开发资源
3 QT的编程环境
3.1 开发工具
assistant qt的帮助文档
designer 设计器
可见即所得的界面编辑器
界面文件 ***.ui
qmake -version 得到qt的版本
qmake -project 可以把项目源文件组织成项目描述文件 *.pro
qmake 根据项目描述文件 得到Makefile
文件依赖关系
make 根据Makefile得到目标
uic 界面转换工具 可以把ui文件转换成.h文件
qtcreator 集成开发工具
3.2 qt的头文件
一个类对应一个头文件
qt的头文件按照功能划分了模块
Qtcore QtGui 核心
QtNetWork QtXml QtSql QtOpenGL
不带.h 类型和头文件名字保持一致
3.3 qt的库文件
库文件是对头文件的分模块实现
/usr/lib/i386-linux-gnu
4 第一个qt程序
一个工程要求有一个对应的目录
1. 编写源代码
vi ***.cpp
2. 组织项目源代码 生成项目描述文件 .pro
qmake -project
3. 根据pro生成Makefile
qmake
4. 根据Makefile 生成目标
make
5 文档可以提供的内容
5.1 一个类继承哪个类 和 被哪个类继承
5.2 这个类用到的其他类型
5.3 类的成员变量 Properties
继承来的成员变量
5.4 公开的函数
构造函数 析构函数 成员函数
继承来的成员函数(虚函数 函数重写)
5.5 信号 和 槽 函数
public slots: 槽函数
void test();
public:signals: 信号函数
void mysig();
/* 信号函数编译器会自动实现 不需要人为实现 */
5.6 事件处理函数
5.7 静态函数
可以不用过对象 就能直接调用
5.8 类的详细说明(用的很少)
6 中文的显示
QTextCodec
创建 一个QTextCodec 类型的对象
codeForName(const char* name);
utf-8 gbk gb2312
QTextCodec *coder = QTextCodec::codecForName("uft-8");
使用文本编码对象的成员函数 把数据转换成unicode编码
toUnicode(const char* msg);
7 Qt中的信号和槽
如何关联两个毫不相干的对象
QObject中的一个静态函数 可以完成
QObject::connect(
const Qobject* sender,
const char* signal,
const QObject* receiver
const char* method);
sender 信号的发送者指针
signal 信号函数 QT中封装了一个宏 SIGNAL(函数名())
receiver 信号的接收者的地址
method 信号处理函数 一般是槽函数 将函数地址转换为const char* SLOT(函数名())
QPushButton 找一个信号函数代表点击行为
void clicked();
QLabel 找一个槽函数代表关闭行为
bool close();
去信号接收者的内容中寻找槽函数
8 组织界面的组建
8.1 父窗口 父窗口指针
如果一个组件没有父窗口 则这个组件就是一个独立的组件
如果一个组件指定了父窗口指针 则这个组件就停靠在父窗口上
父窗口指针的类型 要么是QWidget类型 或者是这个类型的子类型
子类型 : QMainWindow QDialog
改变组件的大小
resize(x,y); 默认的1024 × 768
移动组件的位置
move(x,y);
9 带参的信号 和 槽
QSlider 滑块类
代表滑动的信号函数
void valueChangerd(int val);
QSpinBox 微调框
代表赋值的槽函数
void setValue(int val);
QWidget 父窗口类型
连接带参的信号和槽是 连接函数中的宏中只能出现函数名和
参数的类型不能出现参数的名字
QObject::connect(qsli,SIGNAL(valueChanged(int)),qspin,SLOT(setValue(int)));
QDialog 父窗口
QLineEdit
QPushButton
基于C++语言的框架
一个专注于图形用户界面的框架
一个跨平台的框架
一个艺术级别的开发的工具
2 历史
05年 qt4.0
08年 被nokia收购
09年 开源
qt-project.org
下载相关的开发资源
3 QT的编程环境
3.1 开发工具
assistant qt的帮助文档
designer 设计器
可见即所得的界面编辑器
界面文件 ***.ui
qmake -version 得到qt的版本
qmake -project 可以把项目源文件组织成项目描述文件 *.pro
qmake 根据项目描述文件 得到Makefile
文件依赖关系
make 根据Makefile得到目标
uic 界面转换工具 可以把ui文件转换成.h文件
qtcreator 集成开发工具
3.2 qt的头文件
一个类对应一个头文件
qt的头文件按照功能划分了模块
Qtcore QtGui 核心
QtNetWork QtXml QtSql QtOpenGL
不带.h 类型和头文件名字保持一致
3.3 qt的库文件
库文件是对头文件的分模块实现
/usr/lib/i386-linux-gnu
4 第一个qt程序
一个工程要求有一个对应的目录
1. 编写源代码
vi ***.cpp
2. 组织项目源代码 生成项目描述文件 .pro
qmake -project
3. 根据pro生成Makefile
qmake
4. 根据Makefile 生成目标
make
5 文档可以提供的内容
5.1 一个类继承哪个类 和 被哪个类继承
5.2 这个类用到的其他类型
5.3 类的成员变量 Properties
继承来的成员变量
5.4 公开的函数
构造函数 析构函数 成员函数
继承来的成员函数(虚函数 函数重写)
5.5 信号 和 槽 函数
public slots: 槽函数
void test();
public:signals: 信号函数
void mysig();
/* 信号函数编译器会自动实现 不需要人为实现 */
5.6 事件处理函数
5.7 静态函数
可以不用过对象 就能直接调用
5.8 类的详细说明(用的很少)
6 中文的显示
QTextCodec
创建 一个QTextCodec 类型的对象
codeForName(const char* name);
utf-8 gbk gb2312
QTextCodec *coder = QTextCodec::codecForName("uft-8");
使用文本编码对象的成员函数 把数据转换成unicode编码
toUnicode(const char* msg);
7 Qt中的信号和槽
如何关联两个毫不相干的对象
QObject中的一个静态函数 可以完成
QObject::connect(
const Qobject* sender,
const char* signal,
const QObject* receiver
const char* method);
sender 信号的发送者指针
signal 信号函数 QT中封装了一个宏 SIGNAL(函数名())
receiver 信号的接收者的地址
method 信号处理函数 一般是槽函数 将函数地址转换为const char* SLOT(函数名())
QPushButton 找一个信号函数代表点击行为
void clicked();
QLabel 找一个槽函数代表关闭行为
bool close();
去信号接收者的内容中寻找槽函数
8 组织界面的组建
8.1 父窗口 父窗口指针
如果一个组件没有父窗口 则这个组件就是一个独立的组件
如果一个组件指定了父窗口指针 则这个组件就停靠在父窗口上
父窗口指针的类型 要么是QWidget类型 或者是这个类型的子类型
子类型 : QMainWindow QDialog
改变组件的大小
resize(x,y); 默认的1024 × 768
移动组件的位置
move(x,y);
9 带参的信号 和 槽
QSlider 滑块类
代表滑动的信号函数
void valueChangerd(int val);
QSpinBox 微调框
代表赋值的槽函数
void setValue(int val);
QWidget 父窗口类型
连接带参的信号和槽是 连接函数中的宏中只能出现函数名和
参数的类型不能出现参数的名字
QObject::connect(qsli,SIGNAL(valueChanged(int)),qspin,SLOT(setValue(int)));
QDialog 父窗口
QLineEdit
QPushButton