zhiqiu Blog

以小明大,见一叶落而知岁之将暮,睹瓶中之冰,而知天下之寒

QT编程入门学习第一天的笔记&代码

QT编程入门
一, Qt是图形用户界面(GUI)程序框架
	1. 基本C++语言对图形系统编程口进行封装
  	 	C++类库
	2. 专注与用户界面开始, 在后续发展中不断扩充:
		系统调用, 网络编程, 数据编程, 多媒体, 2D/3D图形渲染(OpenGL), 等等
	3. 跨平台的框架
		一次编码, 到处编译.
		Unix/Liunx/Windows/IOS/Android...
	4. 艺术级的图形开发工具
		很少的工作, 可以还来相对完善的工业级产品.
二, Qt由来和发展
	1991, Haavard Nord, Eirik Chambe-Eng
	1994, Quasar Technologies->Troll Tech (奇趣科技)
	2005, Qt 4.0
	2008, 奇趣科技被诺基亚收购, 更名Qt Software
	2009, 诺基亚Qt Software宣布Qt源代码对弓公众开放
三, 为什么选择Qt
	1. 基于C++语言, 简单, 易用, 面向对象.
	2. 优良的跨平台特性.
	3. 架构健壮, 功能强大, 性能卓越.
	4. 基于Qt的图形界面开发效率高.
	5. 开源软件.
四, 编程环境
	1. 工具
		/usr/bin目录下
		$ which amake
		1) assistant -- 帮助手册
			Public Types : 公有(成员)类型
			Properties : 属性(成员变量)
				属性类型 属性名 (void); // 获取特点属性
				void set属性名 (属性类型); // 获取特定属性
			Public Funtione: 公有(成员)函数, 包括构造和析构函数
			Signals: 信号(函数), 可触发的事件通知
			Public Slots: 公有槽(函数), 对特定事件的相应
		2) $ qmake -version : 察看版本信息
		   $ qmake -project : 根据当前目录中的文件自动生成工程文件
		   $ qmake : 根据工程文件生成构建脚本
		3)desugner ————设计器(设计大师)
			以所见即所得的方式, 设计用户界面, 生成界面描述文件.
		4) uic ————界面编译器
		 	根据界面描述文件生成C++头文件
		5) qtcreator ————集成开发环境
			将界面设计, 源代码编写, 编译链接, 调试继承在一个环境中. 同时提供向导功能, 自动生成代码框架. 语言提示, 语法加亮, 自动完成等功能.
	2. 头文件
		/usr/include/qt4
		QtCore - 核心
		QtGui - 图形用户界面
		QtSql - 数据库
		QtNetWork - 网络编程
		QtXml - XML语言
		QtSvg - 2D矢量
		QtOpenGL - 3D矢量
		...
	注意: Qt的头文件一般不以.h 结尾, 每个单词的首字母大写.
	#include <QApplication>
	#include <QDialog>
	...
	头文件名和类名一致
	class QApplication { ... };
	class QDialog { ... };
	同时提供一套小写版本的头文件:
		#include <qapplicatione.h>
		#include <qdialog>
	兼容早期的Qt应用.
		g++ ... -I/usr/include/qt4/QtGui ...
	3. 库文件
		/usr/lib/i386-linux-gun/libQrCore.so
		/usr/lin/i386-linux-gun/libQtGui.so
		...
		g++ ... -lQtGui ... -L/usr/lib/i386-linux-gnu ...
五, 第一个Qt程序
	1. 编写源代码: Hello.cpp
	2. 生成工程文件: qmake -project -> Hello.pro
	3. 生成构建脚本: qmake -> Makefile
	4. 执行构建脚本: make -> Hello (可执行程序)
	5. 允许可执行程序: Hello/Hello &
	注意: 在main() 函数之前必须调用QApplication::exec() 成员函数, 处理事件循环.


六, Qt中的汉字问题
	1. 创建解码器, 可以把UTF-8编码的汉字转换为Qt内部编码.
		QTextCodec* codec = QTextCodec::codecForName ("utf-8"); // QT Text Code deconde 
	2. 将所创建的解码器设置到进程的语言翻译器中.
		QTextCodec::setCodecFotTr (codec);
	3. 将UTF-8编码的汉字翻译成Qt的内部编码
		QString str = QObject::tr ("汉字字符串", "utf-8");
七, 按钮 ———— QPushButton
八, 信号和槽
	每一个动作都会引发一个相应的信号(函数), 而槽(函数)负责对应该信号做出的相应.
	动作->调用信号函数->调用槽函数->响应
				|			|
				+----连接---+
	Bool QObject::connect (
	const QObject* sender, // 发送者————按钮
	const char* signal, // 信号__点击
	const QObject* recriver, // 接受者__标签
	const char* method // 槽————关闭
	);
	宏SIGANL() 将信号函数专程字符串.
	宏SLOT () 将槽函数专程字符串. 
	按钮中表示鼠标淡季的信号函数: void clicked (void);
	标签中表示关闭的槽函数: bool close (void);
	QObject::connect (&btn, SIGNAL (clicked (void)), &lab, SLOT (close (void)));
	作业: 在Close程序的基础上增加一个"推出"按钮,点击该按钮, 终止应用程序

阅读更多
上一篇C++ RasDial之调用RasEnumEntries遍历系统中存在的宽带连接名称
想对作者说点什么? 我来说一句

QT编程入门_day01

2014年08月19日 78KB 下载

没有更多推荐了,返回首页

关闭
关闭