paip.提升用户体验---c++ qt自定义窗体(1)---标题栏的绘制

效果图:

作者Attilax ,  EMAIL:1466519819@qq.com 
来源:attilax的专栏
地址:http://blog.csdn.net/attilax

第一步:去掉系统默认标题栏 1

第2步:添加自定义标题栏以及最小化,最大化.关闭按钮...还有左边的窗体小图标.. 2

第3步:添加标题栏拖曳事件.. 2

第4步: 最大化,最小化,  .关闭按钮事件: 3

5窗体图标点击事件.. 4

6标题栏右击菜单事件 4

7标题栏双击事件 4

8边框拖曳更改大小事件 (待续) 4

9绘制自定义边框 (待续) 4

第一步:去掉系统默认标题栏

构造函数里添加以下代码.

setWindowFlags( Qt::FramelessWindowHint|  Qt::WindowSystemMenuHint

| Qt::WindowMinimizeButtonHint);

Qt::FramelessWindowHint指明孪不要系统标题栏以及边框..当然附加在他们上面的事件也就没兰,需要重写..

Qt::WindowSystemMenuHint 指明可以在任务栏点击事件以及右键菜单.. 这个要有..

Qt::WindowMinimizeButtonHint   指明可以最小化,最大化.

第2步:添加自定义标题栏以及最小化,最大化.关闭按钮...还有左边的窗体小图标..

/

标题栏背景图片png格式一张..使用photoshop处理一下,我使用的是7.0 绿化版...14M..很不错..高度32pix

最小化,最大化.关闭按钮图片需要..还需要对应的激活状态图片,压下状态图片,共9张..大小32像素..

左边的窗体小图标一张..32像素..

添加标题栏,我是使用lable控件实现的..添加上K,设置个背景走ok兰..

最小化,最大化.关闭按钮,左边的窗体小图标,全部使用QPushButton,设置好mask,以及背景,请参考不规则按钮设置的方法..

使用qss设置好最小化,最大化.关闭按钮的激活状态,press状态下的图片切换..

第3步:添加标题栏拖曳事件..

为了简单的,我直接使用了悬浮窗的拖曳技术.袖管拖曳窗体哪里都可以拖曳..

void IrregularWidget::mousePressEvent(QMouseEvent *event)

{

//按住左键可以托动窗口,按下右键关闭程序

if(event->button() == Qt::LeftButton)

{

m_CurrentPos = event->globalPos() - frameGeometry().topLeft();

qDebug()<<"---mouse left ---";

event->accept();

}

}

void IrregularWidget::mouseMoveEvent(QMouseEvent *event)

{

//resize window

/*    if (event->buttons() && Qt::LeftButton)

{}

else   */

if (event->buttons() && Qt::LeftButton)

{

move(event->globalPos() - m_CurrentPos);

event->accept();

}

}

第4步: 最大化,最小化,  .关闭按钮事件:

//close

void MainWindowList::on_pushButton_5_clicked()

{

close();

}

//max

void MainWindowList::on_pushButton_6_clicked()

{

//最大化

if(this->isMaximized())

this->showNormal();   //恢复

else

showMaximized();

}

//最小化窗口函数

void MainWindowList::on_pushButton_7_clicked()

{

//系统自定义的最小化窗口函数

showMinimized();

}

5窗体图标点击事件..

6标题栏右击菜单事件

7标题栏双击事件

8边框拖曳更改大小事件 (待续)

9绘制自定义边框 (待续)

paip.提升用户体验---c++ qt自定义窗体(1)---标题栏的绘制相关推荐

  1. paip.提升用户体验--提升java的热部署热更新能力

    paip.提升用户体验--提升java的热部署热更新能力 想让java做到php那么好的热部署能力  "fix online"/在线修复吗??直接在服务器上修改源码生效,无需重启应 ...

  2. 描点链接元素的优化提升用户体验

    用一些大网站的时候,发现有一个很细节的共同点:点击链接元素的时候,链接元素会产生一个明显的边框,而且这个边框的颜色和#f27b04很接近,我觉得既然很多大网站都这么做,这其中肯定有一些用户体验方面的东 ...

  3. 网络营销外包——网络营销外包专员浅析提升用户体验从哪入手?

    众所周知,在网站运营期间,网站跳出率的高低直接反映出用户对网站喜爱与否,也是检测网站性能是否丝滑的关键点,如果网站跳出率越高就证明用户体验越差,搜索引擎也不会更加注重抓取该网站.那么如果提高用户体验, ...

  4. 纯前端表格控件SpreadJS V12.1 隆重登场,专注易用性,提升用户体验

    ​ 一款优秀的开发工具,在更新迭代中,除了要满足不同场景的业务需求,也需不断优化已有功能,尤其是细节方面,要能为用户带来使用体验和开发效率的提升. 作为一款备受业界专家和开发者认可的纯前端类Excel ...

  5. 使用渐进式JPEG来提升用户体验

    今天才认识到原来JPEG文件有两种保存方式他们分别是Baseline JPEG(标准型)和Progressive JPEG(渐进式).两种格式有相同尺寸以及图像数据,他们的扩展名也是相同的,唯一的区别 ...

  6. android 6.0适应的机型,提升用户体验 可升Android 6.0机型盘点

    原标题:提升用户体验 可升Android 6.0机型盘点 [手机中国 导购]2009年Android系统正式发布,由此加速手机走向智能化进度.如今,随着Android系统日渐成熟,众多手机厂商都在此基 ...

  7. electron加载html加载不起来,Electron 预加载远程页面提升用户体验

    使用场景 Electron 内置 Chromium 和 Node.js,为了提升用户体验,通常 Electron 封装的前端静态文件存储在客户端本地.但总有一些特殊情况,会使用到部分远程页面. 比如微 ...

  8. APP开发中这十个细节能直接影响到用户体验,那么如何提升用户体验?

    随着软件开发技术的不断发展和完善,有众多同类选择的APP用户越来越挑剔,单单拼功能拼硬件已经不足以捕获用户芳心.在APP使用过程中,大部分用户无意识地培养出了对使用体验的重视感.这警醒企业,只盯着为用 ...

  9. 三星电子中国研究院院长张代君:Bixby绝非炫技而是为提升用户体验而生

    近日,三星正式对外发布旗下人工智能平台Bixby中文(普通话)版.与其他语音助手截然不同,Bixby包含语音.视觉.主页.提醒四大功能,可为用户提供多模交互体验.此外,Bixby还可以不断学习用户的使 ...

  10. 客户体验是什么?如何提升用户体验从而提高产品成单率?必读!

    近年来,"客户体验"成了一个很常用的词,但实际上很多人都无法给到一明确定义,尽管许多企业都将改进客户体验视为一项差异化的竞争优势.可是,如果连某种东西的定义都说不清楚,又如何谈得上 ...

最新文章

  1. 贝佐斯明抢马斯克太空生意:数十亿美元组卫星互联网,5年内发射3236颗卫星...
  2. 第一个dotnetcore程序,Hello World
  3. 关于编码ansi、GB2312、unicode与utf-8的区别
  4. 提高数据中心空间使用率,助力数字新基建
  5. 黑马程序员_集合学习1
  6. 渐进增强和优雅降级有什么区别
  7. UWP开发---通过委托跨页面导航
  8. 怎么看电脑系统是win几_做设计,用win系统 还是苹果MAC电脑更好 (PS举例)
  9. linux安装python_最基础:如何安装Python?
  10. csrf 与 samesite
  11. undefined method `devise' for User(Table doesn't exist):Class解决方法
  12. 魔兽世界开服教程——魔兽世界服务器架设全攻略---战网+Ladder排行版
  13. Python微框架web.py初印象
  14. java求出1~100之间,既是3又是7的倍数的自然数出现的次数?
  15. html里有序列表标签怎么表示,HTML——列表标签
  16. 卖罐头(冬季每日一题 32)
  17. Android客户端三步完成支付宝支付SDK接入
  18. Dataguru(炼数成金)培训优惠码分享
  19. “元宇宙”既是机遇也是挑战
  20. win10获取管理员权限_论文排版工具—LaTeX 安装+获取

热门文章

  1. mariadb配置主从同步遇到的问题
  2. 参考官方mysql自定义一个mysql sink connector
  3. vue从创建到完整的饿了么(10)city.vue的完善(v-if 的简单使用及本地缓存的存储与读取)...
  4. Arbor Networks Spectrum新安全平台发布:高级威胁平台通过内部企业网络连接互联网上的攻击...
  5. 在eclipse-oxygen-sts中,关于快捷键[CTRL + SHIFT + O]失效的问题
  6. java入门第五步之数据库项目实战
  7. ASA防火墙SSL ×××配置
  8. CE驱动程序快速入门(转)
  9. ASP.NET AJAX的客户端框架是鸡肋?
  10. MySql-Mysql技术内幕~SQL编程学习笔记(N)