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

源地址:http://blog.csdn.net/attilax/article/details/12343625

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

效果图:

作者Attilax ,  EMAIL:[email protected] 
来源: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)---标题栏的绘制

时间: 2024-10-04 14:56:35

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

脸萌PM谈如何使用统计工具来提升用户体验

近日,“萌萌哒”头像火爆朋友圈,身边几个90后更是把头像换成身穿德国队服的运动宝贝.脸萌 APP 去年底上线,真火起来却则是上线三个月之后的事.其间,脸萌运营团队究竟做了什么?友盟对脸萌产品经理访谈,从数据统计层面解读这款 APP 火爆背后的运营故事. 脸萌自2013年11月开始使用友盟统计平台,在挖掘用户需求.提升用户体验及产品改版等方面,利用友盟数据有效的进行产品运营和推广决策.他们是如何部署统计平台的各个功能并以此来指导运营的? 一.善用自定义事件,深入了解用户的使用细节 除了日常数据(日

网站建设从多方面做起提升用户体验【转】

网站的用户体验有哪些呢?在网站建设中又怎样提升用户体验呢?用户体验是一个非常广泛的定义.总的概括有七个方面.具体的我们一起来分析一下. 第一.网站的性能方面.这一个方面主要是从网站的加载速度角度分析得出的.网站选择的服务器是否稳定,在域名解析的时候是不是正常.曾经有做过相关的调查,一般定义为三秒以内为优加载速度,超过三秒,每提升0.1秒,那么网站就会流失1%的用户.所以说,网站的加载速度不仅影响了用户的体验,对网站的SEO优化也有一定程度的影响. 第二.网站的视觉效果的设计.网站在色彩的搭配上有

Atitit.hybrid混合型应用 浏览器插件,控件的实现方式 浏览器运行本地程序的解决方案大的总结---提升用户体验and开发效率..

Atitit.hybrid混合型应用 浏览器插件,控件的实现方式 浏览器运行本地程序的解决方案大的总结---提升用户体验and开发效率.. 1. hybrid App 1 1.1. Hybrid App为什么会兴起编辑 1 1.2. 如何实现网页语言与程序语言的混合编辑 2 1.2.1. 多View混合型 2 1.2.2. 单View混合型 2 1.2.3. Web主体型 2 1.3. Hybrid App的瓶颈与未来编辑 3 2. Web App.Hybrid App.Native APP对比

Hitpoint 财务本土化软件再推升级版 完美提升用户体验

基于用户体验的反馈,结合市场上同类产品最佳实践及Hitpoint潜心研发,HPFS财务本土化解决方案5.0 SP4应运而生,于2011年9月16日隆重发布.始终秉承客户第一,坚持提高客户财税体验的理念,HPFS财务本土化解决方案 5.0 SP4 更加注重用户的亲身体验,密切关注用户的切身需求. 相较以往版本,HPFS 财务本土化解决方案5.0 SP4新增了诸多提升用户体验的亮点,为用户获取更大收益.     系统数据处理能力大幅提升 对于数据量庞大的企业,在进行财务数据处理时,所需时间将会更短.

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

今天才认识到原来JPEG文件有两种保存方式他们分别是Baseline JPEG(标准型)和Progressive JPEG(渐进式).两种格式有相同尺寸以及图像数据,他们的扩展名也是相同的,唯一的区别是二者显示的方式不同. Baseline JPEG 这种类型的JPEG文件存储方式是按从上到下的扫描方式,把每一行顺序的保存在JPEG文件中.打开这个文件显示它的内容时,数据将按照存储时的顺序从上到下一行一行的被显示出来,直到所有的数据都被读完,就完成了整张图片的显示.如果文件较大或者网络下载速度较

天搜科技:提升用户体验就是提升企业竞争力

导语:曾经风光无限的小鸣单车,如今成为了国内首家正式进入破产清算的企业,单车只能12元一辆贱卖,更是负债5000多万.作为长期关注互联网环境的天搜科技,其相关负责人指出:唯有重视用户体验,才能维持企业的可持续发展. "上帝欲使之灭亡,必先使之疯狂."这话用来形容如今的共享单车市场再合适不过,曾经风光无限.热火朝天的共享单车风口,如今却被挤压得成了危险的独木桥.最典型的例子,就是近日宣布破产的小鸣单车,这是全国首个共享单车破产案.不仅小鸣单车,卡拉单车.悟空单车.3Vbike.町町单车.

数据驱动设计:如何用A/B测试提升用户体验

文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 作者 | [美]罗谢尔·肯,伊丽莎白F.邱吉尔 内容出自<数据驱动设计:A/B测试提升用户体验>一书 来源 | 大数据(ID:hzdashuju) 导读:设计师最关注的可能就是提供良好的用户体验.良好的业务指标应时时把用户考虑在内.当希望借助数据更好地了解用户时,面临的第一个问题是选择哪些用户进行数据收集. 通过高效的实验方法收集用户数据,将在用户行为多样性.相似性.差异性及设计对用户影响等方面获

设计师如何用产品思维提升用户体验?

今天百度的同学来聊聊产品思维,让设计师从产品的角度入手,站在多维度考虑用户的问题.解决方法.产品目标和产品营销等,来看看不一样的思维能碰撞出哪样的火花. 当想起用户体验,我们经常会想到一款简洁.美观.易用产品的一系列功能,它让我们的生活更简单.但其实功能仅仅是产品微小.精细的一部分.针对用户遇到的问题,产品试图通过多种方法去解决,功能只是这众多可想出方法的一小部分.从产品的角度思考,意味着多维度统筹思考解决方案,包括特定用户的问题.待解决方案.产品目标.产品营收等维度. 用户体验的核心不是一系列

提升用户体验,你不得不知道的事儿——三种提醒框的微技巧

大家都知道无论是android开发还是其他的开发,用户的体验都是很重要的事儿,下面就android开发中的三种提醒方式,Toast,SnackBar,Dialog做一些细节上的处理,或许能让你的产品更有用户亲和力. 1)Toast Toast是一个轻量级的提醒框,相信各位小伙伴,肯定在平时开发中用到地方堪称最多,使用方式非常简单,简单的一句代码搞定. 1 Toast.makeText(this,"This is a toast...",Toast.LENGTH_SHORT).show(