Qt学习day01 Qt的概述 第一个Qt程序 Qt字符串(QString)和字符编码 父窗口(容器窗口)

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

一 Qt的概述
1 Qt的历史发展
1)1991年Haavard Nord和Eirik Chambe-Eng合作编写最初的Qt
2)1994年创立TrollTech(奇趣科技公司)
3)2005年Qt4.0发布
4)2008年诺基亚收购了奇趣科技
5)2009年源代码开放
6)2012年诺基亚将Qt业务出售给Digia公司
7)2013年Qt5.0发布
8)2014年Digia成立子公司The Qt Company
www.qt.io

2 Qt5.4安装和配置
1)下载Qt安装包
qt-opensource-linux-x64-5.4.1.run//64位
qt-opensource-linux-x86-5.4.1.run//32位

2)运行安装程序,根据提示默认安装在主目录
./qt-opensource-linux-x64-android-5.4.1.run

3)配置环境变量
思路:将QT相关可执行程序所在路径添加到PATH环境变量中
home/tarena/Qt5.4.1/5.4/gcc_64/bin
/home/tarena/Qt5.4.1/Tools/QtCreator/bin

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:/sbin:/bin:/usr/games"

4)重启系统,测试
tarena@ubuntu:~$ qmake -v //可以看到Qt版本
tarena@ubuntu:~$ qtcreator //可以进入Qt的IDE

问题:QT运行时依赖libgstreamer和openGL,如果没有需要单独安装
在线安装:
sudo apt-get install libgstreamer0.10-0
sudo apt-get install libgstreamer-plugins-base0.10-0
sudo apt-get install libgl1-mesa-dev

练习:检查自己开发环境,有问题尽快解决;如果没有问题“assistant”进入qt帮助手册随便看看

3 Qt相关工具介绍
1)assistant(Qt助手)
2)qmake(Qt构建器)
3)designer(Qt设计师)
4)uic(Qt转换器)
5)moc(元对象编译器)
6)rcc(资源编译器)
7)qtcreator(Qt创造器)

4 Qt助手的使用
eg:QApplication/QLabel
1)先看第一句话,了解该类的主要功能,如果看不懂,可以点击“more”查看详细说明.
2)接着往下看,了解头文件,构建选项,继承关系
3)Properties(成员变量)
4)Public Functions(公有的成员函数)
5)Reimplemented Public Functions(公有的虚函数)
6)Public Slots(槽函数)//Qt中语法扩展
class QXX{
public slots:
void slot_func(…);//槽函数
};
7)Signals(信号函数)//Qt中语法扩展
class QXX{
signals:
void signal_func(…);//信号函数
};
8)Static Public Members(静态成员)
9)Reimplemented Protected Functions(保护的虚函数)
10)Detailed Description(详细描述)

二 第一个Qt程序
1 创建工程目录
mkdir Hello
2 进入工程目录,编写源程序(cpp)
cd Hello
vi main.cpp
3 执行“qmake -project”,生成"Hello.pro"的工程文件
vi Hello.pro
//表示将来要连接和widgets模块对应的头文件、库文件
QT += widgets
4 执行"qmake",根据工程文件生成编译链接脚本Makefile
5 执行“make”完成编译和链接
注:如果代码有错误,修改之后再次执行make即可,一般3、4两步不需要重复执行.
6 运行测试
./Hello

三 Qt字符串(QString)和字符编码
1 常见编码
1)linux中默认utf-8
2)window中默认GBK
3)qt内部默认unicode
注:Qt5中使用“const char*”表示的中文字符串构造QString对象时,默认会使用fromUtf8()转换为unicode编码,可以正常显示.

2 编码转换(QTextCodec)
//char buf[]
QByteArray encodedString = “中文的GBK编码字符串”;

//1)创建GBK编码对象
QTextCodec *codec = QTextCodec::codecForName(“GBK”);
//2)将GBK编码字符串转换为Unicode编码
QString string = codec->toUnicode(encodedString);

练习:创建Qt应用程序,里面包含一个标签(QLabel)和一个按钮(QPushButton),标签显示文本“我是标签”,按钮显示文本“我是按钮”
1)用vi编写程序,构建6步,结果可以正常显示
2)通过vi底行命令修改编码方式为"gbk",再次make,结果中文乱码
:set fileencoding=gbk
3)通过QTextCodec进行编码转换,再次make,结果又可以正确显示.

四 父窗口(容器窗口)
1 创建图形控件可以指定父窗口,让其停靠在父窗口上面;如果没有指定父窗口则飘在外面形成独立窗体。

2 常用表示父窗口的类
1)QWidget
2)QMainWindow(主窗口)
3)QDialog(对话框)
注:QWidget和它的所有子类都可以用于父窗口,但是常用的父窗口类只有上面三个。
注:当父窗口对象销毁时,上面停靠的控件(对象)将自动被销毁,如果new的控件(对象),不显式delete也不会内存泄漏。

3 QWidget中两个常用函数
1)调整大小
resize(int w,int h);
2)调整位置
move(int x,int y);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值