从零开始的Qt(基本概念)

一、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 这一类的成员都get/set函数。
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);

hello.cpp

#include <QApplication>
#include <QTextCodec>
#include <QLabel>

int main(int argc,char* argv[])
{
	// 创建一个字符编码对象
	QTextCodec* codec = QTextCodec::codecForName("utf-8");
	// 告诉Qt外部编码是utf-8
	QTextCodec::setCodecForTr(codec);
	QTextCodec::setCodecForLocale(codec);
	QTextCodec::setCodecForCStrings(codec);

	// 创建一个App对象,它负责管理整个应用程序的资源,同时接收命令参数
	QApplication app(argc,argv);

	// 创建一个显示 "Hello Qt" 的控件
    QLabel lab("你好 Qt");

	// 显示控制
	lab.show();
    emit
	return app.exec();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值