前情摘要:
工具栏相当于菜单栏中的众多快捷方式,毕竟很多操作都是通过菜单栏来直接访问的,但是可能会查找很长时间,首先就是查找在哪个菜单里面,打开菜单才能进一步操作。而工具栏则是把一些常用的操作都给列举出来,用到时只需一点即可产生效果。
目录
工具栏介绍
工具栏是应用程序中集成多种功能以实现快捷操作的区域。它可以存在一个或多个,或者完全不存在,因此它并非应用程序的必需部分。工具栏是一个可移动的界面部分,其组成部分可以是各种窗口元素,这些元素通常以图标形式的按钮呈现。下图展示了工具栏的布局示例:
1.创建工具栏
通过调用 QMainWindow 类的 addToolBar() 方法可以创建工具栏,每添加一个新的工具栏,都需要执行一次这个方法。
- 如添加两个工具栏:
【注意】
- 添加菜单栏,使用的是 setMenuBar :因为菜单栏只有一个,重复设置,新的替换旧的;
- 添加工具栏,使用的是 addToolBar :工具栏可以有多个,重复设置,就会出现多个工具栏,不包含“替换”
工具栏由一系列的动作(QAction)组成。QAction 是一个可以被添加到菜单栏、工具栏或上下文菜单中的对象。创建动作并将其添加到工具栏的代码如下:
如果想看点击是实现的话,此处在添加槽函数即可完成一个简单的样例。具体如下:
2.设置停靠位置
在 Qt 中,除了创建工具栏和添加动作之外,还可以设置工具栏的停靠位置,以确保它出现在用户期望的位置,从而进一步优化用户体验。工具栏可以停靠在 QMainWindow 的四个边缘(上、下、左、右),也可以设置为浮动。
工具栏停靠位置的设置有两种方式:
- ⼀种是在创建工具栏的同时指定停靠的位置;
- 另⼀种是通过QToolBar类提供的 setAllowedAreas()函数来设置。
⽅式⼀:创建工具栏的同时指定其停靠的位置
在构建工具栏的过程中,可以同时指定其位置,其默认位置是位于窗口的顶部;如之前代码所示,默认显示在顶部。工具栏可以停靠的区域由 QToolBar
类的 allowAreas()
方法定义,其中可以设定的位置选项包括:
- Qt::LeftToolBarArea 停靠在左侧
- Qt::RightToolBarArea 停靠在右侧
- Qt::TopToolBarArea 停靠在顶部
- Qt::BottomToolBarArea 停靠在底部
- Qt::AllToolBarAreas 以上四个位置都可停靠
示例如下:
其次,大家把鼠标放到最前面的几个点处,大家可以发现其实是可以拖动的:
⽅式⼆:使⽤QToolBar类提供的 setAllowedAreas()函数 设置停靠位置。
【说明】
- 在创建工具栏的同时指定其停靠的位置,指的是程序运⾏时工具栏默认所在的位置;
- ⽽使⽤setAllowedAreas()函数设置停靠位置,指的是工具栏允许其所能停靠的位置。
3.设置浮动属性
⼯具栏的浮动属性可以通过QToolBar类提供的setFloatable()函数来设置。setFloatable()函数原型为:
void setFloatable (bool floatable)
这个方法允许你指定工具栏是否可以被用户拖动以浮动在主窗口之上:
- 如果你希望工具栏可以浮动,应将此方法的参数设置为
true
; - 如果希望工具栏固定,不可浮动,则设置为
false
4.设置移动属性
设置工具栏的移动属性可以通过QToolBar类提供的setMovable()函数来设置。setMovable()函数原型为:
void setMovable(bool movable)
- 要禁止工具栏移动,可以将
setMovable()
方法的参数设置为false
。这样,工具栏将固定在当前位置,用户无法通过拖动来改变其位置; - 相反,如果你希望工具栏保持可移动的默认行为,应将参数设置为
true
。
📌 说明:若设置工具栏为不移动状态,则设置其停靠位置的操作就不会⽣效,所以设置工具栏的移动属性类似于总开关的效果。
结论
Qt 工具栏是构建直观用户界面的强大工具,它通过提供快速访问常用功能的方式,极大地提升了应用的可用性。通过上述介绍,我们可以看到创建和定制工具栏在 Qt 中既简单又灵活。