day_01_概述、字符串和字符编码

5[toc]

QT(跨平台的C++ GUI应用程序开发框架)

一、QT概述

1、QT历史发展

 1)1991年诞生( Haavard Nord 和 Eirk Chambe-Eng )
 2)1994年 Haavard Nord 和 Eirk Chambe-Eng 创立了奇趣科技公司( Trolltech );
 3)2005年发布 Qt 4.0
 4)2008年奇趣科技被诺基亚收购;
 5)2009年qt源代码开放;
 6)2012年诺基亚将qt全部知识产权出售给(芬兰)Digia公司;
 7)2013年发布 Qt 5.0
 8)2014年Digia成立了子公司The Qt Company

2、QT 5.4.1安装

1)下载qt安装包

qt-opensource-linux-x64-android-5.4.1.run  // 64位
qt-opensource-linux-x86-android-5.4.1.run  // 32位

2)运行安装包,根据提示安装到主目录下

“/home/tarena/Qt5.4.1”

3)配置环境变量PATH

sudo vi /etc/environment
PATH="/home/tarena/Qt5.4.1/Tools/QtCreator/bin:/home/tarena/Qt5.4.1/5.4/gcc_64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/..."

4)测试
  $ qmake -v - - - - - - - - 可以看到相应qt版本
  $ qtcreator - - - - - - – 可以进入qt的IDE界面
  $ which qmake - - - - - -可以查看qt安装路径

扩展安装方法:

sudo apt install cmake qt5-default qtcreator

3、Qt相关工具介绍

1)assistant(Qt助手)
  $ assistant - - - - - - - - -查看帮助手册

2)qmake(Qt构建器)
  $ qmake -project - - - - 生成工程文件xx.pro
  $ qmake根据工程文件生成Makefile

执行make:根据Makefile完成工程编译和连接;

3)designer(Qt设计师)

$ designer —- 打开Qt设计师,用于设计图形界面,以"xx.ui"文件形式保存;

4)uic(转换器)

将xx.ui文件转换为xx.h头文件

5)rcc(资源管理器)

6)moc(元对象编译器)

将Qt中扩展的语法还原成标准C++的代码;

7)qtcreator(Qt创造器)

Qt的集成开发环境,包含上面所有工具;

4、Qt帮助手册的使用

eg: QApplication
 1)关注开始部分内容,了解头文件,主要功能、构建选项,继承关系等…
 2)Properties(成员变量)
 3)Public Functions(公有的成员函数)
 4)Reimplemented Public Functions(公有的虚函数)
 5)Public Slots(公有的槽函数)

/* 类中用slots声明的函数 */
class XX{
    public slots:
        void slot_func(){}  // 槽函数
};

 6)Signals(信号函数)

/* 类中使用signals声明的函数 */
class XX{
    signals:
        void signal_func();  // 信号函数
};

 7)Static Public Members(静态成员)
 8)Reimplemented Protected Functions(保护虚函数)
 9)Macros(元对象/宏)
 10)Detailed Description(详细说明)


二、第一个Qt程序

1)创建工程目录Hello
注意:每个qt程序,无论多么简单,必须要放在一个独立的工程目录中。

2)进入工程目录,编写源代码:

$ cd Hello
$ vi hello.cpp

3)执行$ qmake -project生成hello.pro的工程文件

$ vi Hello.pro  // 添加构建选项
QT += widgets

4)执行qmake根据工程文件,生成编译链接脚本 Makefile。

5)执行make,根据 Makefile 完成工程的编译和链接,如果代码中有语法错误会有提示,修改之后再次执行make

6)运行测试
./hello正常可以在屏幕左上角看到一个标签窗口显示Hello World!

错误提示1:QApplication找不到,检查构建选项 QT += widgets
错误提示2:在make时提示时间相关错误,修改系统时间即可;


三、Qt字符串和字符编码

1、常见的编码

 1)linux中默认使用 utf-8
 2)windows中默认使用 ANSI(中文GBK,英文ASCII

Vim更改编码方式:set fileencoding=gbk

2、QString 类表示字符串

 1)Qt内部使用 QString 类型表示字符串,默认使用 unicode 编码方式,每个字符占用两个字节;
 2)而实际编程中常用"const char*"表示的字符串,其编码不可能是unicode,所以需要将其转换为unicode再显示,否则可能出现中文乱码;

3、编码转换(QTextCodec)

0)包含头文件

#include <QTextCodec>

1)创建编码对象

QTextCodec *codec = QTextCodec::codecForName("编码方式");

2)使用toUnicode将要显示中文字符串转换为unicode

QString string = codec->toUnicode("含有中文的字符串");

注意:
  在Qt5中使用"const char*"构造QString字符串时,默认使用fromUtf8()自动将其转换为unicode的编码;

设置vi编辑器的编码方式
底行命令:

:set fileencoding=utf-8
:set fileencoding=gbk
:set fileencoding//查看当前的编码方式

练习:
  构建一个按钮对象(QPushButton),显示中文内容"我是一个按钮"
1)使用vi编写程序,构建(6步),直接运行可以正常显示中文。
2)使用底行命令将编码转换为gbk
  :set fileencoding=gbk
  再重新make,再显示则乱码
3)设置编码对象,将中文字符串转换为unicode再显示,又可以正常显示中文内容。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值