0
点赞
收藏
分享

微信扫一扫

项目实训(3):Qt学习计划1

炽凤亮尧 2022-04-13 阅读 89
qt

序言:

我的任务的主要是处理所涉及的rviz移植项目的前端界面,这部分需要使用qt来完成,但是我之前对于这部分的知识有所欠缺,所以需要从头开始学习准备。

在学习的过程中,我将所遇到的困难、学习到的技巧和重点知识以及解决的问题的记录在博客里。

0 准备阶段

配置环境:

qt的开发工具是qt creator,但是下载之后还不能正常运行,需要配置相关的开发环境。

在linux环境下配置要比在windows容易一点……

windows安装失败:缺少kit环境,解决方法:下载windows环境kit,Microsoft官网;解决起来很复杂。

在服务器安装失败:因为疫情封校,需要远程操作服务器,但是不能够正常安装,查阅资料之后是vnc的问题;Qt的安装需要图形化界面,直接跳过这一阶段即可。

虚拟机linux环境:重要的是g++编译器需要安装,不然仍然不能够正常建立项目,需要再根据报错下载相应的工具或是更改项目的路径。

1 qt简介:

  • 一个跨平台的 c++ 开发库,主要用来开发GUI
  • 纯C++开发,当然也有python和Ruby等语言的绑定,但是我们优先选择c++
  • 支持多种操作系统,包含了windows,Linux和Unix以及android和iOS,嵌入式的QNX和VxWorks?
  • 有开源版本;
  • 尽管有Qml标记语言,但是仍然建议C++为主:考虑到功能的完善性

2 学习1 基本概念

建立第一个QT程序后,学习各个文件的意义:pro、cpp、h。

重点掌握其中代码的含义;

基本控件的操作函数;按钮

对象树:构建的创建和析构属于类和对象的概念范围;不用管理释放的操作;

(因为用cpp不是很多,主要用的java,这里不太理解内存管理,实际上这个点算是cpp的一个重点,这里需要再加深学习一下,文末附了一篇讲解的很详细的博客。不过总之,这里的介绍就是不用非常注意qt里的内存管理,有对象树来帮助解决问题。)

3 学习2 重点:信号和槽

控件:exp. 按钮

事件:exp. 鼠标点击、键盘输入等

信号和槽是用来实现事件的处理;

connect(发送者,发送的信号,信号接受者,处理的槽函数)

发送的信号的格式:函数的地址::信号

ps:发送的信号signal从帮助文档中查阅,常见的有clicked,toggled;

slots的槽函数同理;


当然,也可以自定义信号和槽;

qt creator会自动给出空的signals和slots,我们可以在里面写出;

singals,返回值viod,可以有参数可以重载,不需要实现,只声明即可;

slots,返回值void,需要实现;

emit函数;

自定义信号的重载:

信号和槽需要取明确的指针的地址;

void(类::信号)(类型)= &类::信号

信号的参数个数要和槽函数的个数一一对应;

这里信号的参数个数也可以多于槽函数的参数;


信号连接信号;

connect(发送方,发送的信号,发送方2,发送的信号2)

connect(发送方2,发送的信号2,接受方,接受的槽函数)

实现了了中介;发送方2相当于过度者;

以此类推,也可以多个信号连接一个槽函数,或是一个信号连接多个槽函数;


这个地方的connect函数还可以拓展使用,可以在具体实践的时候进一步学习;

disconnect函数,可以断开信号;

参考资料:

Failed to initialize Xrander___pop_的博客-CSDN博客

Qt编程指南,Qt新手教程,Qt Programming Guide (ustclug.org)

Qt教程,Qt5编程入门教程(非常详细) (biancheng.net)

C++内存管理(超长,例子很详细,排版很好)_草根caogen的博客-CSDN博客_c++ 内存管理

举报

相关推荐

Springboot项目实训--day1

项目实训2022-3-13

项目实训2022-3-17

项目实训2022-3-23

项目实训(三)

项目实训六

项目实训-杨桃

实训1 作业

0 条评论