QT学习第一天  坚持住!!

一 Qt概述
1.Qt发展历史
(1)1991年诞生(Haavard Nord/Eirik Chambe-Eng),
(2)1994年创立Troll Tech(奇趣科技)
(3)2005年QT4.0
(4)2008年被Nokia收购
(5)2009年源代码开源
(6)2012年Nokia将全部QT业务和知识产权卖给Digia公司
(7)2013年QT5.0 QT5.1 QT5.2
(8)2014年Digia公司成立 The Qt Company子公司
2.Qt5.4的安装
(1)下载QT安装法
(2)运行安装程序
(3)根据提示安装到主目录下
(4)配置环境变量
3.Qt开发相关工具介绍 都在~/QT../...../bin下
(1)assistant(帮助手册)
在终端输入 assistant &
(2)qmake(qt构建器)
qmake -v :查看当前所用QT的版本
qmake -project :生成和平台无关的工程描述文件(.pro)
qmake : 根据工程文件生成和平台相关的Makefile
make :根据qmake所生成的Makefile编译和链接,生成执行文件
(3)designer(QT设计师)
图形界面的编辑器,用于设计UI界面,得到”.ui”的文件
c++不支持...需要转换
(4)uic(转换工具)
.ui ——>> .h
(5)qtcreateor(QT创造器)
集成开发环境IDE, 包含上面的所有工具
4.QT助手的使用
eg:查看QApplication类的使用
(1)public Type(共有类型,一般不关注)
(2)Properties(类中的成员变量)
(3)Public Functions(公有成员函数包含构造函数,重点关注)
(4)Reimplemented Public Functions(共有的虚函数)
(5)Public Slots(槽函数,qt中用slots声明的函数)
 class A{
 public slots:
     void func(void);//槽函数
 };
(6)Signals(信号函数,用signal声明的函数)
 class A{
 signal:
     void sig_func(void);//信号函数
 };
(7)Static Public Members(静态成员,需要关注)
静态成员不需要对象,可以直接用类名::进行访问
(8)Reimplemented Protected Functions(保护的虚函数)
(9)Macros(宏,元对象)
Q_OBJECT
SIGNAL
SLOT
(10)Detailed Description(详细说明,介绍一些主要的函数API的使用等)
 
二 第一个QT程序
1.创建QT工程目录:”Hello"
注意:每一个QT程序都要放在一个独立的目录下.
2.编写应用程序: “Hello.cpp”
3.使用 “qmake -project”生成和平台无关的项目描述文件
修改Hello.pro:
QT += widgets   #加载和窗口组件相关的功能
TEMPLATE = app  #构建的是一个应用程序
TARGET = Hello  #最后生成的可执行程序的名字
INCLUDEPATH += .#头文件路径
4.qmake
生成和平台相关的
5.make
编译链接生成可执行程序,如果出错,修改源代码,重新make即可
6.运行测试
./Hello
*7.在QT中显示中文字符串
(1)QT5.4内部使用Unicode(utf-8),QT4.8内部使用utf-16
(2)linux默认使用utf8
(3)Windows中默认使用ANSI(中文GBK,英文ASK2)
(4)解决编码问题引发的错误
->>构造编码对象
#include <QTextCodec>
QTextCoderc *coder = QTextCodec::CodecForName(“当前的编码方式”)
编码方式指编写代码时所用的编码,一般linux是utf8,windows是GBK
->>通过编码对象将要显示中文的字符串转换成QT内部的编码方式
codec->toUnicode(“含有中文的字符串”);
 
<<案例>>构建一个QPushButton对象(按钮),显示中文内容 “按我"
(1)用vi编写源程序,构建,正常可以直接显示中文
(2)将源程序拷贝window中,用记事本打开,另存为ANSI,替换掉原来文件
(3)将ANSI文件拷贝回ubuntu替换原来的程序,重新make,结果是乱码
(4)设置编码对象,转换为QT内部编码,再次make,又可以正常显示中文
 
三 信号和槽函数(重点)
1.信号和槽是QT自己定义的一种通信机制,实现不同对象之间数据交互.其实现本质就是函数的调用一个对象发出信号,连接到这个信号的对象会执行相应槽函数.
<<案例>>创建一个按钮对象和一个标签对象,点击按钮关闭标签
2.建立信号和槽函数连接
 QMetaObject::Connection QObject::connect(
     const QObject *sender, const QMetaMethod &signal,
     const QObject *receiver, const QMetaMethod &method,
     Qt::ConnectionType type = Qt::AutoConnection
 );
sender:发送信号的对象指针(QObject的子类对象)
signal:信号函数
receiver:接收信号的对象指针
method:槽函数
 
<<案例>>创建一个按钮对象和一个标签对象,点击按钮关闭标签
QPushButton btn(…);
QLabel label(…);
QObject::connect(&btn,SIGNAL(clicked()),&label,SLOT(close()));
 

QT学习第1天的更多相关文章

  1. 【转载】分享一些Qt学习资源,欢迎下载

    资源来源:http://bbs.csdn.net/topics/390358737 经过我一翻整理,把一些我收集到的Qt学习资源分享给大家,主要适合新手,老鸟可以直接忽略我.要说明一下,很多资源都是在 ...

  2. QT学习之路--创建一个对话框

    Q_OBJECT:这是一个宏,凡是定义信号槽的类都必须声明这个宏. 函数tr()全名是QObject::tr(),被他处理过的字符串可以使用工具提取出来翻译成其他语言,也就是做国际化使用. 对于QT学 ...

  3. 转载: Qt 学习之路 2归档

    Qt 学习之路 2归档 http://www.devbean.net/2012/08/qt-study-road-2-catelog/

  4. Qt 学习资料

    Qter开源社区http://www.qter.org/ [Qt教程], 作者yafeilinux [视频] QT学习之路:从入门到精通 <C++ Qt 编程视频教程>

  5. qt学习笔记(五) QGraphicsPixmapItem与QGraphicsScene的编程实例 图标拖动渐变效果

    应大家的要求,还是把完整的project文件贴出来,大家省点事:http://www.kuaipan.cn/file/id_48923272389086450.htm 先看看执行效果,我用的群创7寸屏 ...

  6. Qt学习博客推荐

    附录C Qt资源 C.1 Qt 官方资源 全 球各大公司以及独立开发人员每天都在加入 Qt 的开发社区.他们已经认识到了Qt 的架构本身便可加快应用程序开发进度.这些开发人员,无论是想开发单平台软件. ...

  7. qt学习教程1.qt开发环境搭建

    qt学习教程1.qt开发环境搭建 首先下载qt 下载地址:http://download.qt.io/archive/qt/ 此教程使用的版本为5.1.1 下载好后,打开安装包,然后点下一步 选择一个 ...

  8. QT学习教程

    原地址:http://www.devbean.NET/2012/08/qt-study-road-2-catelog/ 网上看到的不错的教程 本教程以qt5为主,部分地方会涉及qt4.据说非常适合qt ...

  9. Qt学习之路

      Qt学习之路_14(简易音乐播放器)   Qt学习之路_13(简易俄罗斯方块)   Qt学习之路_12(简易数据管理系统)   Qt学习之路_11(简易多文档编辑器)   Qt学习之路_10(Qt ...

随机推荐

  1. Scalaz(23)- 泛函数据结构: Zipper-游标定位

    外面沙尘滚滚一直向北去了,意识到年关到了,码农们都回乡过年去了,而我却留在这里玩弄“拉链”.不要想歪了,我说的不是裤裆拉链而是scalaz Zipper,一种泛函数据结构游标(cursor).在函数式 ...

  2. [moka同学笔记]Yii2.0 modal的使用

    第一次使用,时候不明白什么原理,大概用了几次后,才模模糊糊搞清楚原来是怎么一回事,现在就把写过的代码,贴在下边. 1.在视图文件中, 第一步首先在index.php文件中 做了一个a链接的按钮 调用了 ...

  3. Wowza® Media Systems 使用配置手册。

    准备 1,先安装Java:http://www.java.com/zh_CN/ 2,官网下载安装:http://www.wowza.com/pricing/installer ,需要输入用户名邮箱等信 ...

  4. angular源码分析:angular的源代码目录结构说明

    一.读源码,是选择"编译合并后"的呢还是"编译前的"呢? 有朋友说,读angular源码,直接看编译后的,多好,不用管模块间的关系,从上往下读就好了.但是在我看 ...

  5. JavaScript基础18——js的Array对象

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. javascript 奇淫巧技44招

    1.首次为变量赋值时务必使用var关键字 变量没有声明而直接赋值得话,默认会作为一个新的全局变量,要尽量避免使用全局变量. 2.使用===取代== ==和!=操作符会在需要的情况下自动转换数据类型.但 ...

  7. 百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程

    UEditor是百度开发团队奉献的一款很不错的在线编辑器.在百度自己很多产品上都有应用,本文主要是该编辑器的配置教程. 1.下载UEditor,当前最新版本是1.3.6.这里下载的.net版本,选择U ...

  8. Projects\Portal_Content\Indexer\CiFiles文件夹下文件占用磁盘空间过大问题。

    C:\Program Files\Microsoft Office Servers\12.0\Data\Office Server\Applications\9765757d-15ee-432c-94 ...

  9. 项目管理、测试管理、代码bug 管理

    1.友盟统计     阿里旗下的产品 http://www.umeng.com/ 2.bugly    腾讯旗下的产品 http://bugly.qq.com/ 3.禅道  项目管理工具  需要部署到 ...

  10. Android客户端与服务器

    就是普通的服务器端编程,还不用写界面,其实还比服务器编程简单一些.跟J2EE一样的服务器,你android这一方面只要用json或者gson直接拿数据,后台的话用tomcat接受请求操作数据,功能不复 ...