qt 5 小练习 创建无边框界面
我们大家都知道QT5 自带的界面不是那么美观,并且每个软件我们都发现他们的边框是自定义的,所以我决定写一篇这样的博文,也许已经有许许多多篇大牛写的论文了,但我还是想写一篇记录自己的学习QT的历程
首先,我们得在相应的构造函数中写入无边框的代码(例如博主想要mywidget变为无边框)
setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
//设置边框状态,没边框之后,必须要自己写一个鼠标事件来拖动它
setMouseTracking(true); //打开鼠标跟踪事件
我们要有三个函数,press,Release,以及move,还要有bool press; 判断是否按了鼠标,以及QPoint start_pos;记录起始位置,QPoint end_pos;记录终点位置,而他们的差值就是我们要移动多远。例如起始位置是(0,0)终点位置是(200,300),那我们的无边框的界面就移动(200,300)个单位。最重要的事,必须初始化press=flase;因为你刚开始没按鼠标。 void mywidget::mousePressEvent(QMouseEvent *e)
{
press = true;
start_pos=e->pos();
}
void mywidget::mouseMoveEvent(QMouseEvent *e)
{
if(press)
{
QPoint end_pos = e->globalpos();
//在移动的过程中,坐标一直在变,只有当鼠标松开的时候,press变为false,坐标确定,开始移动窗口
this->move(end_pos-start_pos);
}
}
void mywidget::mouseReleaseEvent(QMouseEvent *)
{
press=false; //用来结束mouseMoveEvent中的坐标变化,确定终点坐标
}
作者:Ten10
参考资料来源于百度。属于博主原创,转载请注明出处
qt 5 小练习 创建无边框界面的更多相关文章
- WPF 创建无边框的圆角窗口
原文:WPF 创建无边框的圆角窗口 如题所述,在WPF中要创建一个没有边框且为圆角的窗体,有如下几步工作要进行: 第一步:去掉窗体默认样式的边框 首先将窗体的背景设为透明,将允许透明的属性设置为Tru ...
- 【Qt】Qt之自定义界面(实现无边框、可移动)【转】
简述 UI设计是指对软件的人机交互.操作逻辑.界面美观的整体设计.好的UI设计不仅是让软件变得有个性.有品位,还要让软件的操作变得舒适简单.自由,充分体现软件的定位和特点. 爱美之心人皆有之.其实软件 ...
- Qt之自定义界面(实现无边框、可移动)
简述 UI设计是指对软件的人机交互.操作逻辑.界面美观的整体设计.好的UI设计不仅是让软件变得有个性.有品位,还要让软件的操作变得舒适简单.自由,充分体现软件的定位和特点. 爱美之心人皆有之.其实软件 ...
- 36.QT-解决无边框界面拖动卡屏问题(附带源码)
1.简介 看到很多才学QT的人都会问为啥无边框拖动为啥会花屏? 那是因为你每次拖动的过程中都一直在调用move()函数让QT重新绘制界面,如果资源过大,就会导致当前图形还未绘制完,便又重新改变坐标了, ...
- Qt编写自定义控件67-通用无边框
一.前言 在之前的一篇文章中写过一个通用的移动控件,作用就是用来传入任意的widget控件,可以在父类容器中自由移动.本篇文章要写的是一个通用的无边框类,确切的说这不叫控件应该叫组件才对,控件是要看得 ...
- 使用WPF创建无边框窗体
一.无边框窗口添加窗口阴影 实际上在WPF中添加无边框窗口的窗口阴影十分简单. 首先,设置WindowStyle="None"以及AllowsTransparency=" ...
- CreateWindow创建无边框 可拉伸窗体
createwindow 定义 HWND WINAPI CreateWindow( _In_opt_ LPCTSTR lpClassName, _In_opt_ LPCTSTR lpWindowNam ...
- OpenCV 学习笔记(16)open创建无边框的显示窗口
https://blog.csdn.net/weixin_41794771/article/details/93198098 讲解地址 // 1获取窗口句柄 winName 窗口名字 HWND win ...
- javaScript创建无边框iframe兼容ie
<script>var m_iframe=document.createElement("iframe");m_iframe.scrolling="no&qu ...
随机推荐
- python--判断数据类型可不可变
内存是一块空间,可以比喻成一个比较大的房子,定义一个变量就是在大房子中建立一个小房子,判断一个数据类型可不可变,就是看在这个这个大房子中有没有新建小房子,可以通过id来判断,如果id没有变化则是不可变 ...
- [转]javascript指定事件处理程序包括三种方式:
javascript指定事件处理程序包括三种方式: (1):DOM0级事件处理程序 如: 代码如下: var btn=document.getElementById("mybtn" ...
- jquery uploadify修改上传的文件名和显示
如果觉得看文章太麻烦,可以直接看参考:http://stackoverflow.com/questions/7707687/jquery-uploadify-change-file-name-as-i ...
- nginx 错误日志分析 以及说明
1.日志简介 nginx日志主要有两种:访问日志和错误日志.访问日志主要记录客户端访问nginx的每一个请求,格式可以自定义:错误日志主要记录客户端访问nginx出错时的日志,格式不支持自定义.两种日 ...
- TFS2013 安装出现TF400102错误解决
我是参照:http://www.cnblogs.com/zhibincai/archive/2013/11/25/3442285.html 进行安装的windows 2012 + sql 2012 S ...
- Flume负载均衡配置
flume负载均衡配置 集群DNS配置如下: hadoop-maser 192.168.177.162 machine-0192.168.177.158 machine-1191.168.177.16 ...
- WPF 中,如何使用自定义的resources
第一步,先自己自定义一个Resources 1.新建一个xaml文件,在其中自定义好自己的Resources 这个Resource 的根节点是 <ResourceDictionary xmlns ...
- HDU 1058 Humble Number
Humble Number Problem Description A number whose only prime factors are 2,3,5 or 7 is called a humbl ...
- NOIP200701
题是这样的: 试题描述 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金.期末,每个学生都有3门课的成绩:语文.数学.英语.先按总分从高到低排序,如果两个同学总分相同,再 ...
- 九度OJ 1442 A sequence of numbers
题目地址:http://ac.jobdu.com/problem.php?pid=1442 题目描述: Xinlv wrote some sequences on the paper a long t ...