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

Qt如何屏蔽工具栏(QToolBar)自动折叠功能

最近发现Qt上工具栏一行放不下的时候,会自动折叠起来。当用户点击展开功能的小三角按钮时,工具栏会展开成多行。这个功能本身没什么问题,但是当工具栏展开的时候,鼠标光标一旦不小心移动到了工具栏外面,这时候,工具栏又会自动折叠上。这个功能就很烦人,经常遇到的一种情况就是用户展开了工具栏,但是还没点击具体的工具栏按钮的时候,由于鼠标光标不小心滑到工具栏外面了,结果工具栏自动折叠起来了。本来以为这是个修改下标志位比较好解决的问题,然后网上搜了一圈之后,发现好像没有遇到同样的问题。没办法,花了一点时间看了一下QToolBar的实现代码。发现工具栏折叠功能是在QEvent::Leave这个事件里处理的。知道原理后,可以新建一个类然后重写QToolBar的event方法。

具体代码如下:

#include "mytoolbar.h"MyToolBar::MyToolBar(QWidget *parent) : QToolBar(parent)
{}bool MyToolBar::event(QEvent* e){if(e->type() == QEvent::Leave){if(isActiveWindow()){//当前焦点在工具栏,直接return true不做任何处理,不自动折叠任务栏return true;}else{//当前焦点不在工具栏,说明用户已经点击过工具栏按钮。调用默认的事件处理函数,鼠标光标滑开时自动折叠工具栏return QToolBar::event(e);}}return QToolBar::event(e);
}

http://www.lryc.cn/news/488197.html

相关文章:

  • 【数据分享】中国统计摘要(1978-2024)
  • unity运行状态下移动、旋转、缩放控制模型
  • 《 C++ 点滴漫谈 一 》C++ 传奇:起源、演化与发展
  • Github客户端工具github-desktop使用教程
  • 自然语言处理:第六十三章 阿里Qwen2 2.5系列
  • springboot中设计基于Redisson的分布式锁注解
  • C++初阶学习第十一弹——list的用法和模拟实现
  • 共享单车管理系统项目学习实战
  • 详细解读TISAX汽车信息安全评估
  • gitlab cicd搭建及使用笔记(二)
  • 鸿蒙实战:页面跳转传参
  • Spring Security SecurityContextHolder(安全上下文信息)
  • 蓝队技能-应急响应篇日志自动采集日志自动查看日志自动化分析Web安全内网攻防工具项目
  • Python JSON 数据解析教程:从基础到高级
  • 25.UE5时间膨胀,慢动作,切换地图,刷BOSS
  • Three.js 相机控制器Controls
  • Android开发实战班 - 现代 UI 开发之自定义 Compose 组件
  • All-in-one Notion 介绍
  • 深入理解C++11右值引用与移动语义:高效编程的基石
  • 【WRF-Urban】URBPARM_LCZ.TBL 查找表解释及内容
  • 网络是怎么连接的
  • Java 实现PDF添加水印
  • 网络安全问题概述
  • (udp)网络编程套接字Linux(整理)
  • Web应用安全入门:架构搭建、漏洞分析与HTTP数据包处理
  • [JAVA]MyBatis框架—获取SqlSession对象
  • Perl 简介
  • spring-bean的销毁流程
  • 问:Spring MVC DispatcherServlet流程步骤梳理
  • 用源码编译虚幻引擎,并打包到安卓平台