当前位置: 首页 > news >正文

Qt窗口(2)-工具栏

Qt窗口(2)

QToolBar

使用这个表示工具栏对象,一个对象可以有多个工具栏,也可以没有,工具栏往往可以手动移动

添加工具栏的语法:

this->addToolBar(toolBar);

而添加菜单栏的语法:

this->setMenuBar(menuBar);

set VS add:

set包含替代的含义,add不包含

运行代码如下:

//工具栏需要手动创建出来的,自身不会创建QToolBar*toolBar=new QToolBar();this->addToolBar(toolBar);QAction*action1=new QAction("保存");QAction*action2=new QAction("打开");toolBar->addAction(action1);toolBar->addAction(action2);connect(action1,&QAction::triggered,this,&MainWindow::handle1);connect(action2,&QAction::triggered,this,&MainWindow::handle2);

运行结果如下:

在这里插入图片描述

添加图标的代码如下:

//工具栏需要手动创建出来的,自身不会创建QToolBar*toolBar=new QToolBar();this->addToolBar(toolBar);QAction*action1=new QAction("保存");QAction*action2=new QAction("打开");action1->setIcon(QIcon(":/save.png"));action2->setIcon(QIcon(":/open.png"));toolBar->addAction(action1);toolBar->addAction(action2);connect(action1,&QAction::triggered,this,&MainWindow::handle1);connect(action2,&QAction::triggered,this,&MainWindow::handle2);

运行结果:

在这里插入图片描述

图标会覆盖文本

运用ToolTip可以使其悬停显示内容

代码如下:

 //工具栏需要手动创建出来的,自身不会创建QToolBar*toolBar=new QToolBar();this->addToolBar(toolBar);QAction*action1=new QAction("保存");QAction*action2=new QAction("打开");action1->setToolTip("点击这里保存文件");action1->setIcon(QIcon(":/save.png"));action2->setIcon(QIcon(":/open.png"));toolBar->addAction(action1);toolBar->addAction(action2);connect(action1,&QAction::triggered,this,&MainWindow::handle1);connect(action2,&QAction::triggered,this,&MainWindow::handle2);

运行结果:

在这里插入图片描述

也可以结合菜单来使用:

运行结果:

在这里插入图片描述

如果一个QAction既是QMenu的也是QToolBar的,释放的时候会不会重复delete?

只会释放一次,不会重复delete

创建多个工具栏,工具栏是可以拖动的,这种状态称为“浮动”

代码如下:

 	QToolBar*toolBar1=new QToolBar();QToolBar*toolBar2=new QToolBar();this->addToolBar(toolBar1);this->addToolBar(toolBar2);QAction*action1=new QAction("动作1");QAction*action2=new QAction("动作2");QAction*action3=new QAction("动作3");QAction*action4=new QAction("动作4");toolBar1->addAction(action1);toolBar1->addAction(action2);toolBar2->addAction(action3);toolBar2->addAction(action4);

运行结果:

在这里插入图片描述

也可以调整工具栏的位置:

代码如下:

 QToolBar*toolBar1=new QToolBar();QToolBar*toolBar2=new QToolBar();this->addToolBar(toolBar1);this->addToolBar(Qt::LeftToolBarArea,toolBar2);QAction*action1=new QAction("动作1");QAction*action2=new QAction("动作2");QAction*action3=new QAction("动作3");QAction*action4=new QAction("动作4");toolBar1->addAction(action1);toolBar1->addAction(action2);toolBar2->addAction(action3);toolBar2->addAction(action4);

在这里插入图片描述

可以设置允许放置的区域:

代码如下:

QToolBar*toolBar1=new QToolBar();QToolBar*toolBar2=new QToolBar();this->addToolBar(toolBar1);this->addToolBar(Qt::LeftToolBarArea,toolBar2);toolBar2->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);QAction*action1=new QAction("动作1");QAction*action2=new QAction("动作2");QAction*action3=new QAction("动作3");QAction*action4=new QAction("动作4");toolBar1->addAction(action1);toolBar1->addAction(action2);toolBar2->addAction(action3);toolBar2->addAction(action4);

也可以设置不可以浮动

代码如下:

	//设置不允许浮动toolBar2->setFloatable(false);

更可以设置不移动:

//设置不允许移动toolBar2->setMovable(false);

片转存中…(img-J9acoj57-1752829880136)]

也可以设置不可以浮动

代码如下:

	//设置不允许浮动toolBar2->setFloatable(false);

更可以设置不移动:

//设置不允许移动toolBar2->setMovable(false);
http://www.dtcms.com/a/285382.html

相关文章:

  • 【嵌入式硬件实例】-555定时器实现LED追逐效果
  • Python的界面美化库 qt-material
  • 【机器学习】安装Jupyter及基本操作
  • Android如何使用Linux Quota管控app对userdata分区的磁盘空间使用
  • QT聊天项目DAY15
  • 数据结构入门:像整理收纳一样简单!
  • 【git仓库搭建笔记】
  • 二、Dify 版本升级教程(LInux-openeuler)
  • react/vue vite ts项目中,自动引入路由文件、 import.meta.glob动态引入路由 无需手动引入
  • cartorgapher的编译与运行
  • 需要保存至服务器的:常见编辑、发布文章页面基础技巧
  • Machine Learning HW2 report:语音辨识(Hongyi Lee)
  • 如何防止GitHub上的敏感信息被泄漏?
  • Jenkins+Docker+Git实现自动化CI/CD
  • 大带宽服务器都有哪些应用场景?
  • 群晖中相册管理 immich大模型的使用
  • Honeywell霍尼韦尔DV-10 变速器放大器 输入 15-28 VDC,输出 +/- 10VDC 060-6881-02
  • 【HCI log】Google Pixel 手机抓取hci log
  • HTTP 性能优化:五条建议
  • 构建智能客服Agent:从需求分析到生产部署
  • UGUI 性能优化系列:第二篇——Canvas 与 UI 元素管理
  • 如何选择旅游科技行业云ERP?Oracle NetSuite助力汇智国际数智化升级
  • Oracle 19C 后台主要进程的功能解析
  • (LeetCode 面试经典 150 题 ) 242. 有效的字母异位词 (哈希表)
  • nginx-http反向代理与负载均衡
  • 大规模图计算引擎的分区与通信优化:负载均衡与网络延迟的解决方案
  • Nginx配置Spring Boot集群:负载均衡+静态资源分离实战
  • 百度权重提升技巧分析:从底层逻辑到实战策略
  • x86上编译jetson nano的docker
  • 【Docker】在Linux环境下使用Dockerfile打包镜像(图文示例)