用Qt实现圆角窗口

 时间:2024-10-12 17:36:50

1、首先,用Qt Creator新建一个基于QDialog类的工程。当然其他类的工程也是可以的,这里为了简单说明,用QDialog来实现。

用Qt实现圆角窗口

3、我们可以看到Qt Assistant介绍了两种setMask方法,这里我们采用第一种方法。也就是用QBitmap类实例来实现的方面。第二种方法需要自己绘制区域来实现。两种方法都比较灵活。在dialog.cpp的构造函数中添加如下代码: setWindowFlags(Qt::FramelessWindowHint); //设置关于窗体为圆角 QBitmap bmp(this->size()); bmp.fill(); QPainter p(&bmp); p.setPen(Qt::NoPen); p.setBrush(Qt::black); p.drawRoundedRect(bmp.rect(),20,20); setMask(bmp);注意setWindowFlags(Qt::FramelessWindowHint);是为了将窗体设置为无边框窗体。你没有见过一个带有标准标题栏的不规则窗体吧!然后构造一个QBitmap类对象,再用QPainter类对象在bmp上绘制一个半径为20像素的圆角矩形。最后调用setMask函数。对了,不要忘了#include <QBitmap>和#include <QPainter>好了我们来运行程序看看情况。

用Qt实现圆角窗口用Qt实现圆角窗口

6、然后将刚才的代码注释掉,再添加如下代码:QBitmap bixmap(":/pic/C:/Users/Administrator/Pictures/mask.jpg");setMask(bixmap);注意,setWindowFlags(Qt::FramelessWindowHint);还是必须得有的。运行看看结果。圆角矩形窗口出现了,但是因为图片存在alpha通道信息,所以有半透明的效果。还需要注意的是,图片的路径的引用方式,需要预先将图片已资源的形式添加到项目中。

用Qt实现圆角窗口
  • WinForm如何设置exe图标----C#基础教程
  • wegame错误码22 解决方案
  • 如何去掉sqlserver查询结果中的重复值
  • main方法怎么获取配置文件中的值
  • FastStone Capture截图快捷键使用教程
  • 热门搜索
    做效果图用什么软件 金箔金命是什么意思 learn是什么意思 股票洗盘是什么意思 安逸的意思 出人意料的意思 60岁生日送什么礼物 有的放矢的意思 嵌的意思 乏味是什么意思