qt初步学习

xiwen2017 xiwen2017     2022-12-26     712

关键词:

一、Qt的环境与工具
1、工具
a、Qt助手:里面详细说明了Qt框架中的每一个类、函数、宏等
是开发的必备工具,在终端可以使用assistant开启
b、构建器:负责把源码文件、头文件构建成一个Qt工程,并且生成Makefile文件
c、Qt设计器:以画图的方式来进行设计界面,设计出的界面是没有功能的,如果需要完成相应的功能,还要与代码相结合(界面文件可以转换成源码)
d、Qt界面编译器:负责把以.ui结尾的界面文件,生成对应的代码
e、Qt创造器:(Qt creator 集成开发环境:集合了编辑器、助手、构建器、设计器、编译器)

2、头文件和库
Qt框架的头文件存储在/usr/include/qt4,一般以Qt开头结尾无.h
Qt框架中的共享库存在/usr/lib/qt4/imports目录中,一般以libQt开头

二、第一个Qt程序
1、编写源码
a、创建目录,每个Qt工程都要有?一个单独的目录
b、编写入口
QApplicaton app(argc,argv);
QLabel lab("hello world");
lab.show();
return app.exec();

2、生成工程文件
qmake -project ->目录名.pro
此文件可以被Qt创造器打开
3、生成Makefile 文件
qmake->Makefile
4、编译
Qt程序在编译时语法检查非常严密,错误信息也很多


三、如何查阅文档
1、打开Qt帮助文档(assistant命令),使用索引、搜索找到对应的控件类、函数、宏,Inherits:它的父类有哪些
2、头文件,要注意使用此控件时要添加什么头文件,一般情况下是类名
3、Properties:具有保护属性的成员变量
4、Public Functions:具有公开属性的成员函数,部分功能函数可能在父类中,当需要找的功能函数找不到时,可以去父类中查找
5、Reimplemented Public Functions:可以重写的成员函数
6、Public Slots:具有公开属性的槽函数,首先它具有某些功能的成员函数,但它可以与信号绑定,不光可以被信号调用,也可以被直接调用
7、Signals:它们是以函数形式存在的,但它们并不实现出来,可以用emit显示的触发
8、Reimplemented Properties Functions:可以重写的具有保护属性的函数
9、Detailed Description:类的使用注意事项
10、其它:静态成员、静态成员函数、相关的宏

四、中文处理
1、不同的字符编码:由于历史原因、地区、国家、文化的不同,所使用的文字编码方式是不同的
英语国家:ASCII,128个字符
中国大陆:GBK23120(windows下常用的字符编码,每个汉字2字节)
港台地区:BIG5
2、统一字符编码
国际标准化组织想设计出一套全世界通用的字符编码(Unicode):
UTF-2:双字节统一字节集
UTF-4:四字节统一字节集
UTF-8:用一到四字节表示一个Unicode字符
UTF-16:用二到四字节表示一个Unicode字符
UTF-32:用四字节表示一个Unicode字符
3、内外有别:
内部编码:Qt应用程序中所有的控件默认使用的是UTF-16编码
外部编码:操作系统所使用的编码(ubuntu默认使用的是UTF-8编码)

4、解决Qt乱码问题
Qt4.8默认的是UTF-16编码,因此必须手动设置后才能正确显示中文
Qt5.0之后默认的是UTF-8 编码
5、在程序最开始时设计内部编码
QTextCodec* code=QTextCodec::codecForName("utf-8");
QTextCodec::setCodecForTr(code);
QTextCodec::setCodecForLocale(code);
QTextCodec::setCodecForCStrings(code);

五、信号与槽
信号:就是以函数形式存在的一种信号
槽:是一种特殊的函数,如果不配合信号,可以当作普通函数使用

信号和槽函数必须经常连接才能协同工作
connect(负责发送信号的对象指针
信号函数签名:SIGNAL(函数名及参数)
接收信号的对象指针:
槽函数的函数名签名:SLOT(函数名及参数)

六、自定义信号和槽
1、在自定义的类中定义信号和槽函数一定要单独写一个头文件
2、自定义的类必须要继承QObject类
3、在类的开头必须要有宏:Q_OBJECT
4、定义信号时前面要加关键字,信号以函数形式存在,但不需要实现
signals:
5、定义槽函数时要加public slots:关键字,可以显示调用,也可以与信号连接,由信号触发调用
6、信号由关键字emit 触发,可以带参数也可以不带
如果想让信号给槽发送数据,它们的参数格式必须一样

七、控件与容器
组成窗口界面的小工具叫控件,QLabel,QTextEdit,QPushButton

容器用来存放控件的类
QMainWindow:主窗口容器,由标题栏、菜单栏、工具栏、状态栏组成

 














































































vc++下使用qt初步入门学习

初步了解,VC++下使用QT,一种方式是,用QT的工具或命令行,生成VS的工程,然后导入VC进行构建;下面来看一下,下载一个QT免费试用版本;安装之后,先设置一下环境变量;test3目录... 查看详情

编写第一个qt程序(代码片段)

...序。我们也用QtCreator编写一个“HelloWorld”程序,以初步了解QtCreator设计应用程序的基本过程,对使用QtCreator编写QtC++应用程序建立初步的了解。新建一个项目单 查看详情

初步学习nuxt3

初步学习Nuxt3初步学习Nuxt3 查看详情

qt网络应用开发初步(代码片段)

  应用层的网络协议,如HTTP/FTP/SMTP等简称“应用协议”,他们运行在TCP/UDP之上,从Qt5开始,已经不再分别提供QHttp类,QFtp类,应用层的编程使用QNetworkRequest,QNetworkReply和QNetworkAccessManager这几个高层次的类代替。  1)... 查看详情

强化学习初步学习

IterativePolicyEvaluation     HowtoImproveaPolicy              ValueIteration   查看详情

初步剖析qt事件处理全过程(windows)

一、说起Qt事件处理,在windows平台下,当然离不开Win32:Win32程序的基本结构:  1.注册窗口;  2.创建窗口;  3.启动由GetMessage和DispatchMessage构成的事件循环;  4.被注册的回调函数WndProc负责相应各类事件;Windows会为当... 查看详情

qt3d教程初步显示3d的内容

Qt3D教程(二)初步显示3D的内容      前一篇很easy,全然就没有牵涉到3D的内容,它仅仅是我们搭建3D应用的基本框架而已,而这一篇。我们将要利用它来初步地显示3D的内容了!本次目的是将程序中间的内... 查看详情

周志华《机器学习初步》绪论

周志华《机器学习初步》绪论Datawhale2022年12月组队学习✌文章目录周志华《机器学习初步》绪论一.机器学习二.典型的机器学习过程三.计算学习理论PAC模型思考两个问题问题性质角度计算要求的角度四.基本术语五.归纳偏好六.NFL... 查看详情

vue初步学习

 Vue简单的总结一Vue简单的总结二Vue简单的总结三Vue简单的总结四(项目流程)Vue简单的总结五 查看详情

mybatis初步学习

1、准备工作jar包:  mybatis-3.4.4.jar,下载地址:https://github.com/mybatis/ignite-cache/releases  mysql-connector-java-5.1.40-bin.jar,下载地址:https://dev.mysql.com/downloads/connector/j/项目目录结构:数据库建标语句/*如果已经存在此数据库,先删 查看详情

初步线程学习1

线程演示:1packagethread;23/**4*兔子的线程5*@authorsuperdrew6*/7publicclassRabbitThreadextendsThread{8publicvoidrun(){9setName("兔子线程");10while(true){11System.out.println("兔子领先了....加油!!!!"+getName()+""+getPriori 查看详情

初步学习多线程3

java源码展示:兔子线程:RabbitThread.javapackagethread;/***兔子的线程*@authorsuperdrew*/publicclassRabbitRunnableimplementsRunnable{publicvoidrun(){while(true){System.out.println("兔子领先了....加油!!!!"+Thread.currentThre 查看详情

js初步学习

[使用JS的三种方式]1、HTML标签中内嵌JS(不提倡使用):<buttononclick="javascript:alert(‘小碧池!你真点啊!‘)">有本事点我呀!!!</button> 2、HTML页面中直接使用JS:<scripttype="text/javascript">//JS代码</script> 3、... 查看详情

uwp的初步学习

                     查看详情

qt的udp的初步使用

该程序实现的功能是:局域网内,每个用户登录到聊天软件,则软件界面的右端可以显示在线用户列表,分别显示的是用户名,主机名,ip地址。软件左边那大块是聊天内容显示界面,这里局域网相当于qq中的qq群,即群聊。每个... 查看详情

spring源码学习的初步体会

Spring源码学习的初步体会:深入学习和巩固java的基础知识,其中的java知识范围全部,可以边研究源码边巩固复习基础知识体会其中用到的设计思想:其中包含的设计原则和设计模式.加深对spring的理解,在业务开发中使用spring更... 查看详情

初步学习多线程2

线程代码展示:兔子线程实现Runnable接口:packagethread;/***兔子的线程*@authorsuperdrew*/publicclassRabbitThreadimplementsRunnable{publicvoidrun(){while(true){System.out.println("兔子领先了...加油!!!!!"+Thread.currentThread().getN 查看详情

java初步学习helloword

java初步学习helloword发表于2012-08-1608:05:12by 月小升 1.下载javaJDKhttp://www.oracle.com/technetwork/java/javase/downloads/index.html2.安装JDK3.打开命令行输入java按下Enter你会看到Usage:java[-options]class[args...](to 查看详情