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中的坐标变化,确定终点坐标}

参考资料来源于百度。属于博主原创,转载请注明出处

时间: 2024-12-28 16:36:54

qt 5 小练习 创建无边框界面的相关文章

C# 创建无边框,任意样式窗体,无边框窗体的移动

界面布局如下: 窗体中添加一个PictureBox控件 有边框窗体 无边框窗体 代码实现: public partial class Form2 : Form { public Form2() { InitializeComponent(); } #region 创建无边框,任意样式窗体 private void Form2_Load(object sender, EventArgs e) { this.TransparencyKey = Color.White; //设置默认透明色 this.

使用WPF创建无边框窗体

一.无边框窗口添加窗口阴影 实际上在WPF中添加无边框窗口的窗口阴影十分简单. 首先,设置WindowStyle="None"以及AllowsTransparency="True"使得窗口无边框.并对Window添加DropShadowEffect效果并设定相关参数,在这里我根据设计师的要求设置ShadowDepth="1" BlurRadius="6" Direction="270" Opacity=&q

CreateWindow创建无边框 可拉伸窗体

createwindow 定义 HWND WINAPI CreateWindow( _In_opt_ LPCTSTR lpClassName, _In_opt_ LPCTSTR lpWindowName, _In_ DWORD dwStyle, _In_ int x, _In_ int y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE h

WPF 创建无边框的圆角窗口

第一步:去掉窗体默认样式的边框 首先将窗体的背景设为透明,将允许透明的属性设置为True,即:Background="Transparent"  AllowsTransparency="True",将Window的WindowStyle属性设置为None,即WindowStyle="None" (当AllowsTransparency="True"时,WindowStyle.None 是 WindowStyle 的唯一有效值)

【Qt编程】无边框窗口的缩放与拖动

在现在,绝大多数软件都向着简洁,时尚发展.就拿有道的单词本和我做的单词本来说,绝大多数用户肯定喜欢我所做的单词本(就单单界面,关于颜色搭配和布局问题,大家就不要在意了). 有道的单词本: 我所做的单词本: 很明显,两者的主要区别就是周围的边框问题.你可以对比QQ以前的版本和这几年的版本,就会发现都倾向于下面这种窗口模式.下面我们就说说如何用Qt实现无边框窗口的缩放与拖动. 对于无边框窗口的拖动其实很简单,其基本思想是,在鼠标移动前后记录鼠标的坐标,然后将窗口移动这两个坐标之差的距离即可,具体实现

【Qt编程】无边框窗口的拖动

在上一篇文章中,我们讲述了如何进行无边框窗口的缩放与拖动,而在一些情况下,我们的窗口只需要进行拖动也不需要改变其大小,比如:QQ的登录窗口.本来在上一篇文章中已经讲述了如何进行窗口的拖动,但是却与窗口的缩放相关的程序放在一起,下面专门单独分离出来. 窗口的拖放只涉及到鼠标事件:按下操作.释放操作和移动操作,因此只需要重写这三个函数.由于程序比较简单,并且注释也比较详细,就不作过多介绍.新建一个基类为QWidget的Qt Gui应用程序,只需修改widget.h和widget.cpp文件如下: 1

WPF无边框可拖动窗体

下面主要记录下创建无边框窗体,并且可以拖动.这种窗体主要用于弹出小窗体时. <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http

无边框窗体

一.无边框窗体 1.创建无边框窗体 将窗体FormBorderStyle属性设为None 2.设置一个关闭按钮功能 (1)添加一个pictureBox,将背景改为关闭图像 (2)设置鼠标移入,移出,点击等事件 /// <summary> /// 鼠标移入 /// </summary> /// <param name="sender"></param> /// <param name="e"></par

QT界面开发-(特效)无边框窗口+背景图片

转发自邵发<C/C++系列教程>Qt界面开发 https://chuanke.baidu.com/4509752-209060.html 1.自己用代码画界面 2.用Laber控件放一张背景大图 hpp 1 #include <QtWidgets> 2 3 4 private: 5 virtual void paintEvent(QPaintEvent *event); 6 7 virtual void mouseMoveEvent(QMouseEvent * event); 8