Qt 无边框、透明、可移动、的个性窗体

2023-11-01

很多朋友都问透明的效果怎么做,为什么自己做的无边框窗体不可移动,一个个回答的很累,干脆写出来分享下好了,我只用代码说话。

  

  1

   

  工程的main.cpp

   

   int main(int argc, char *argv[])

{
QApplication::setStyle("cleanlooks");
QApplication a(argc, argv);
login w;
w.setWindowTitle("ClientLogin");
 
 
 
 
w.setWindowOpacity(1);
w.setWindowFlags(Qt::FramelessWindowHint);
w.setAttribute(Qt::WA_TranslucentBackground);
w.show();
w.move(200,100);
return a.exec();
}
关键的语句,就是其中的
 
 
 
 
w.setWindowOpacity(1);
 
 
w.setWindowFlags(Qt::FramelessWindowHint);
 
 
w.setAttribute(Qt::WA_TranslucentBackground);
 
 
 
 
 
 
这些语句,不知道什么意思就摁下F1,或者直接查阅帮助文档……
 
 
对窗体无边框的设置要写在main里面,这样所有派生的子窗口,QDialog,QWidget都可继承,
 
 
很好规划和管理,方便统一美化设计。
 
 
 
 
 
 
 
 
 
 
以工程中一个聊天窗口为例,先用PS制作一个窗体的背景图片,注意存为png格式,这是透明的关键。
 
 
不会使PS,可以找些PNG资源图片。
 
 
我的PNG透明背景图为:
 
 
 
 
4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
将它添加到你的资源包中,然后设置为窗体的背景。
 
 
 
 
下图是我的工程,其中的场景设置其实也是更换组建的背景图片喽~~
 
 
的
 
 
 
 
 
 
 
 
 
 
这个你就可以预览到透明的无边框窗体了,但是还有一个重要的问题,窗口竟然无法移动。
 
 
这也是无边框导致的……具体原因我不细说,搜一下很清晰,我只说解决方案。
 
 
 
 
 
 
在每个子窗口中,都添加:
 
 
 
 
void yourwindow::mousePressEvent(QMouseEvent *event)
 
 
 
 
 
 
 
 
 
 
这样就大功告成了,运行一下看看效果,绿森林是俺滴桌面,可以忽略之。
 
 
到底
 
 
 
 
 
 
欢迎交流~


原文
{
 
 
this->windowPos = this->pos();
 
 
this->mousePos = event->globalPos();
 
 
this->dPos = mousePos - windowPos;
 
 
}
 
 
void yourwindow::mouseMoveEvent(QMouseEvent *event)
 
 
{
 
 
this->move(event->globalPos() - this->dPos);
 
 
}
 
 
 
 
 
 
void yourwindow::changeEvent(QEvent *e)
 
 
{
 
 
QMainWindow::changeEvent(e);
 
 
switch (e->type()) {
 
 
case QEvent::LanguageChange:
 
 
ui->retranslateUi(this);
 
 
break;
 
 
default:
 
 
break;
 
 
}
 
 
}



FROM: http://blog.sina.com.cn/s/blog_6176b277010120yk.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt 无边框、透明、可移动、的个性窗体 的相关文章

  • python练习题(四十四):输入一个奇数,然后判断最少几个 9 除以该数的结果为整数。

    题目 输入一个奇数 然后判断最少几个 9 除以该数的结果为整数 a int input 请输入一个奇数 个位数字不能为5 b 9 n sum b n 1 while True if n sum a 0 print 最少 d 个9除以 d 的
  • elasticsearch根据时间范围查询总条数

    根据创建时间来查询总条数 Autowired private ElasticsearchTemplate elasticsearchTemplate String morning 2021 06 01 String times 2021 0
  • Python-迭代器/生成器

    可调用对象 callable Python中的可调用对象包括以下七种 用户使用def或lambda语句创建的函数 使用C语言 CPython 实现的内置函数 如time strftime 和len 使用C语言实现的方法 如dict get
  • 类的sizeof(二)

    1 空类的sizeof是1 空类是指没有成员的类 类中的函数不占空间 除非是虚函数 如 class A public A A void fun sizeof A 是1 注 class A1 public A1 A1
  • AndroidStudio Gradle手动下载

    AndroidStudio Gradle自动下载巨慢 因此手动配置 下载好的压缩包和解压后的文件夹复制到gradle 2 14 1 all gt 8bnwg5hd3w55iofp58khbp6yv文件夹下 将gradle 2 14 1 al
  • Android开发APP门户界面设计(作业一

    Android开发APP门户界面设计 作业一 1 内容 请根据课程实操实现APP门户界面框架设计 至少包含4个tab页 能实现tab页之间的点击切换 2 技术 使用布局 layouts 和分段 fragment 对控件进行点击监听 一 项目
  • 机器学习-实验一

    实验一 逻辑回归 一 实验目的 加深对逻辑回归算法的理解和认识 掌握基于逻辑回归的二分类算法和基于 softmax 的多分类算法的设计方法 二 实验原理 先拟合决策边界 不局限于线性 还可以是多项式 再建立这个边界与分类的概率联系 从而得到
  • Javascript操作DOM事件对象

    一 给HTML元素添加事件的三种方法 1 在HTML的标签上使用onxx属性 如
  • Java语言实现稀疏数组

    稀疏数组 关于作者 作者介绍 博客主页 作者主页 简介 JAVA领域优质创作者 一名在校大三学生 在校期间参加各种省赛 国赛 斩获一系列荣誉 关注我 关注我学习资料 文档下载统统都有 每日定时更新文章 励志做一名JAVA资深程序猿 文章目录
  • QT添加lib库后提示 No rule to make target “xxx.lib“ needed by “xxx.exe“

    QT添加外部的lib库 首先右键项目 选择添加库 进行选择 这里加入的是静态库 添加库后编译一直报错No rule to make target xxx lib needed by xxx 查找资料后发现是pro文件中添加lib库的语句错误
  • C++安装库

    这里以安装libLAS为例 去github下载文件 https github com libLAS libLAS 在该文件下输入以下指令 mkdir build cd build cmake make sudo make install 主

随机推荐

  • JavaWeb(四) 请求(request)与响应(response)

    1 请求响应流程图 Request 请求对象 tomcat服务器为我们创建 使用这个对象获取请求相关的数据 父接口 ServletRequest 子接口 HttpServletRequest Response 响应对象 tomcat服务器为
  • OpenAI首席科学家最新访谈:对模型创业两点建议、安全与对齐、Transformer够好吗?...

    导读 OpenAI首席科学家Ilya Sutskever最近和他的朋友Sven Strohband进行了一次简短的对话 访谈中主要提及了以下几个问题 对深度学习的信仰 对AGI的畅想 Transformer够不够好 让人震惊的涌现能力 安全
  • videojs 销毁重新初始化问题及其他使用

    1 videojs 销毁 this myvideo videojs myvideo bigPlayButton false textTrackDisplay false posterImage true errorDisplay false
  • 火狐浏览器不能上网

    只有火狐浏览器不能上网 用windows edge可以正常上网 尝试了一些方案 例如关闭火狐的网络代理 排障模式 重新安装等依然不能上网 解决方案 这种情况重置下Winsock 方法 单击 开始 找到 Windows PowerShell
  • 初始化int类型data1[ ]={1,3,5,7,9,11,13,15,17,19,2,4,6,8,10,12,14,16,18,20}先使用任意一种算法对其排序提示用户输入一个数字,再折半查找

    初始化int类型data1 1 3 5 7 9 11 13 15 17 19 2 4 6 8 10 12 14 16 18 20 先使用任意一种算法对其排序提示用户输入一个数字 应用折半查找函数模板找出它的位置 include using
  • 一些计算机方面的感悟

    1 架构设计的本质是深入理解业务场景之后用工程经验做出最佳权衡 2 计算机解决问题其实没有任何奇技淫巧 它唯一的解决办法就是穷举 穷举所有可能性 算法设计无非就是先思考 如何穷举 然后再追求 如何聪明地穷举
  • Android项目针对libs(armeabi,armeabi-v7a,x86)进行平台兼容

    1 Android设备如何加载 so文件 不同CPU架构的Android手机加载时会在libs下找自己对应的目录 从对应的目录下寻找需要的 so文件 如果没有对应的目录 就会去armeabi下去寻找 如果已经有对应的目录 但是如果没有找到对
  • , trailing comma 逗号的问题

    PHP 数组元素最好加上逗号 因为可以方便其他人添加内容JAVASCRIPT 其实也应该加上逗号的 但可惜IE9以下不认 所以 可以不加逗号JSON JSON hates trailing commasPYTHON 希望尾部元素有逗号 转载
  • _mm_pause

    翻译自Intel指令 PAUSE指令提升了自旋等待循环 spin wait loop 的性能 当执行一个循环等待时 Intel P4或Intel Xeon处理器会因为检测到一个可能的内存顺序违规 memory order violation
  • 1.2冯•诺依曼模型

    文章目录 1 2 1 4个子系统 1 2 2 存储程序概念 1 2 3 指令的顺序执行 前一节中讲到的基于图灵机所建造的计算机是在存储器中存储数据 在1944 1945年期间 冯 诺依曼指出 程序和数据在逻辑上是相同的 因此程序也能存储在计
  • Mariadb主从复制之MHA配置

    Mariadb主从复制之MHA配置 一 环境介绍 1 主从复制及半同步复制配置链接 2 IP规划 二 检查一主两从数据库状态 1 主库状态 2 从库状态 三 MHA高可用介绍 1 MAH介绍 2 MAH作用 四 MHA基本环境配置 1 所有
  • linux线程使用

    概念 1 PCB Process Control Block 进程管理块 系统中存放进程的管理和控制信息的数据结构体 每一个进程均有一个PCB 在创建进程时建立 直到进程撤销而撤销 2 程序段 是进程中能被进程调度程序在CPU上执行的程序代
  • STL空间配置

    SGI STL有两级配置器 第一级配置器的allocate 和 realloc 都是在调用malloc 和 realloc 不成功后 改调用oom malloc 和 oom realloc 后两者都有内循环 不断调用 内存不足处理例程 期望
  • Unity3D中读取CSV文件

    转自 https www cnblogs com lingLuoChengMi p 9990488 html 本人对原文进行了整理 适当加上注释和小部分修改 不过大部分代码也是转载 说明 1 写入一个单元格时 如果含有逗号 则需要将整个字段
  • NVIDIA可编程推理加速器TensorRT学习笔记(三)——加速推理

    文章目录 简单张量RT示例 将预训练的图像分割 PyTorch 模型转换为 ONNX 将 ONNX 模型导入 TensorRT 生成引擎并执行推理 对输入进行批处理 分析应用程序 优化您的应用程序 使用混合精度计算 更改工作区大小 重用 T
  • 主成分分析二级指标权重_权重赋值之“主成分分析法”

    主成分分析 Principal Component Analysis PCA 最早是由K 皮尔森 Karl Pearson 对非随机变量引入的一种统计方法 尔后H 霍特林将此方法推广到随机向量的情形 主成分是指通过正交变换将一组可能存在相关
  • 阿里云物联网Iot设备上下线状态数据流转的设置

    要想通过物联网平台实现远程监控设备 那么就要建立监控端设备 比如手机 和被监控端设备的数据交互 在阿里云物联网平台完成这个交互功能的方法就是建立两个设备之间的数据流转 对于设备要流转的物模型数据 阿里云网站上已经有详细的示例介绍 但是对于设
  • 最大上升序列Super Jumping! Jumping! Jumping!

    多组输入 第一个数代表有多少个数据 输入0结束 Sample Input 3 1 3 2 4 1 2 3 4 4 3 3 2 1 0 Sample Output 4 10 3 1到3最大 1到2到3到4最大 直接到三最大 include
  • 尚硅谷 Vue 2.0 + Vue 3.0 入门到精通教程学习笔记 (二)

    第二章 Vue 组件化编程 2 1 模块与组件 模块化与组件化 2 1 1 模块 1 理解 向外提供特定功能的 js 程序 一般就是一个 js 文件 2 为什么 js 文件很多很复杂 3 作用 复用 js 简化 js 的编写 提高 js 运
  • Qt 无边框、透明、可移动、的个性窗体

    原文地址 转载 Qt 无边框 透明 可移动 的个性窗体案例详解 作者 风贝 很多朋友都问透明的效果怎么做 为什么自己做的无边框窗体不可移动 一个个回答的很累 干脆写出来分享下好了 我只用代码说话 工程的main cpp int main i