博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt界面设计1
阅读量:5329 次
发布时间:2019-06-14

本文共 1108 字,大约阅读时间需要 3 分钟。

最近刚接触Qt 对于QML做界面感觉已经很轻松了,但是想尝试一下GUI..准备做一个理财的小软件 ....慢慢记录我的一点一滴的学习经历.

自己封装界面UI 遇到了好多新手级别的问题=_=!!! 

 

1、界面透明 方法好多设置pattle 等等这里我就用这一个

ydw.setWindowFlags(Qt::FramelessWindowHint);   //在设置  Qt::WA_TranslucentBackground 属性 之前必须去掉窗体的标题栏

ydw.setAttribute(Qt::WA_TranslucentBackground);  //设置窗体透明 前面必须先调用...Qt文档上说的

2、 设置透明窗体并且贴图      

this->setWindowFlags(Qt::FramelessWindowHint);//设置窗体无边框
this->setAttribute(Qt::WA_TranslucentBackground);//设置背景透明
QPixmap pic;//支持多种图片 另外QBitmap是单一颜色图像可以自己看效果
pic.load(":/image/qqframe.png");//加载图像
this->resize(pic.size());//设置窗体和图片一样大  弄一张圆角图片就能实现圆角窗体了
 
 
void YdwWindow::paintEvent(QPaintEvent *)  //然后在窗体的paintEvent虚函数进行贴图 利用QPainter  OK
{
 
QPainter painter(this);
painter.drawPixmap(0, 0, pic);//绘制图像
}

 

3、圆角实现原理

                QBitmap objBitmap(size()); //QPainter用于在位图上绘画

QPainter painter(&objBitmap); //填充位图矩形框(用白色填充)
painter.fillRect(rect(),Qt::white);//白色rgb 255 255 255 用来和图片异或
painter.setBrush(QColor(86,78,72)); //在位图上画圆角矩形(用黑色填充)做为重叠区
painter.drawRoundedRect(rect(),windowRadius,windowRadius); //绘制圆角
setMask(objBitmap);//使用setmask进行 背景一伙出现圆角

 

转载于:https://www.cnblogs.com/yuedongwei/p/4145411.html

你可能感兴趣的文章
Amcharts 柱状图和线形图
查看>>
APC注入
查看>>
关于ES6 Class语法相关总结
查看>>
文件处理
查看>>
[工具] Sublime Text 使用指南
查看>>
Hangfire在ASP.NET CORE中的简单实现方法
查看>>
今晚的比赛(2011.12.4)
查看>>
统计细菌基因组ORF
查看>>
Unity3D笔记 英保通三 脚本编写 、物体间通信
查看>>
python实现对某招聘网接口测试获取平台信息
查看>>
Algorithm——何为算法?
查看>>
Web服务器的原理
查看>>
小强升职计读书笔记
查看>>
常用的107条Javascript
查看>>
#10015 灯泡(无向图连通性+二分)
查看>>
获取EXe版本信息
查看>>
elasticsearch 集群
查看>>
忘记root密码,怎么办
查看>>
linux设备驱动归纳总结(三):1.字符型设备之设备申请【转】
查看>>
《黑客与画家》 读书笔记
查看>>