为导航算法写一个漂亮的上位机(3)QT设计标题和工具栏

前言

博主目前也是边学QT边写代码,难免出现已经完成部分的代码依然被反复修改的情况,不过请放心,博主会同步修改博客的。
博客上的文章会专注于基本功能的实现,对于重复性的工作只会描述一次。
在阅读本文前,希望读者能够对QT有一个基本了解,可以粗看一遍入门教程Qt 快速入门系列教程,对各个功能有一个概念性的认识即可。

创建工程

创建工程详见本系列第一篇文章为导航算法写一个漂亮的上位机(1)环境搭建
这里提一句,为了读者方便引用代码,我们规定了项目名称NavigationCenterApplication,类的名称与此相同,如果读者嫌太长,请自行修改。
QT选择模块时,直接点Next即可。以后需要时,可以在VS工程里的QT工程配置中添加。

在QT里设计菜单栏和工具栏

一眨眼的功夫,我们的工程已经创建好了,新出炉的白白胖胖的工程,里面只有系统创建的内容。如下图
为导航算法写一个漂亮的上位机(3)QT设计标题和工具栏
点击NavigationCenterApplication.ui,进入QT Designer。
QT工程会默认创建菜单栏与工具栏,我们直接在上面做出修改即可。如下图在这里输入处,即是菜单栏,紧贴着菜单栏下方的一小条就是工具栏。
为导航算法写一个漂亮的上位机(3)QT设计标题和工具栏
我们依照SBG的软件,依次创建文件视图工具帮助,如下图所示。

为导航算法写一个漂亮的上位机(3)QT设计标题和工具栏
右下角是动作编辑器,用于设计菜单栏的下拉菜单,双击其中一条动作,可以在弹出的窗口进行编辑。
为导航算法写一个漂亮的上位机(3)QT设计标题和工具栏
文本:显示在下拉菜单的内容
对象名称:QT创建的类名称
ToolTip:鼠标悬浮时显示的提示
图标:可以选择图片作为该动作的图标,菜单栏和工具栏上都会采用该图标。可以在下拉菜单里选择不同状态(例如鼠标点击前后)调用的图标。
Checkable:不选为触发式按键(trigger button),选上则为切换按钮(toggle button),记录和播放两个动作我们要点选Checkable。就是两个三角状图标的动作。

如想要在工具栏上放置快捷按钮,用鼠标把右下角的动作编辑器里的动作拖到工具栏上即可。

记得把菜单栏里的类名改一下,不要用menu1、menu2去命名哦!
为导航算法写一个漂亮的上位机(3)QT设计标题和工具栏

在VS里编写对应代码

好,到这里QT Designer的工作先告一段落,接下来我们要在VS里给每一个动作配一个槽函数。
所谓槽函数,完全可以理解为中断函数或回调函数。就是触发了相应动作后,程序要执行什么代码。

调整代码组织架构

VS在创建工程时,自动创建了一个NavigationCenterApplicationCPP文件和H文件,里面已经生成了QT相关的代码。但为了程序架构的简洁,代码阅读方便,我们不能一股脑的将所有代码都塞到里面去,而是要将代码拆分成一个个独立的文件,在NavigationCenterApplication进行调用,那么代码要以什么原则进行拆分呢?一个最基本的原则就是分级,同一级别不允许相互调用,不同级别之间不允许跨级调用,只允许下级被上级单向调用。
故依据此原则,我们到工程所在文件夹下,创建code文件夹,并在code内创建QT文件夹。然后把main放到code下,将NavigationCenterApplication的两个文件放到QT文件夹下。在解决方案管理器中移除这3个文件,然后在Source FilesHeader Files文件夹中分别创建QT文件夹,并在这两个文件夹里创建QTMenu.cpp和QTMenu.h。再重新添加移除的3个文件。注意改变文件位置后,需要修改工程的包含路径。
VS工程里如下图所示
为导航算法写一个漂亮的上位机(3)QT设计标题和工具栏
包含路径修改如下
为导航算法写一个漂亮的上位机(3)QT设计标题和工具栏
随后运行,就能出现如下窗口
为导航算法写一个漂亮的上位机(3)QT设计标题和工具栏

编写槽函数