首页 技术 正文
技术 2022年11月11日
0 收藏 941 点赞 2,489 浏览 2317 个字

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 : 根据工程文件生成和平台相关的Makefilemake :根据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_OBJECTSIGNALSLOT(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())); 

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,918
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,444
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,255
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,069
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,701
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,741