Qt 实用技巧

原创 2016年09月24日 23:30:08

不规则窗口,透明半透明窗口

半透明窗口

设置窗口属性

setWindowFlags(windowFlags() | Qt::FramelessWindowHint);
setAttribute(Qt::WA_TranslucentBackground);

绘制带alpha通道的图片

// paintEvent()函数中
QPainter painter(this);
QImage bg("background.png");
painter.drawImage(0, 0, bg);

窗口剪裁区域

剪裁区域

将绘制限制在剪裁区域中,设置一个圆角矩形的剪裁区域

// paintEvent()函数中
QPainter painter(this);
painter.setClipping(true);

QPainterPath clipPath;
clipPath.addRoundedRect(0, 0, width(), height(), 50, 50);
painter.setClipPath(clipPath);

圆角矩形窗口

圆角矩形窗口

设置窗口属性

setWindowFlags(windowFlags() | Qt::FramelessWindowHint);
setAttribute(Qt::WA_TranslucentBackground);

绘制圆角矩形
如果什么都不绘制,整个窗口都是透明的,即绘制什么就显示什么,另外alpha通道会影响半透明值

// paintEvent()函数中
QPainter painter(this);
painter.setClipping(true);

QPainterPath roundRect;
roundRect.addRoundedRect(0, 0, width(), height(), 50, 50);
painter.fillPath(roundRect, QBrush(QColor(100, 100, 100)));

待续…

参考

QT 求助怎么 实现圆角窗口的……
http://www.qtcn.org/bbs/read.php?tid=34559

QT实现窗口透明的方法
http://blog.csdn.net/liuwumiyuhuiping/article/details/6955692

QT 任意区域截图

setWindowFlags(Qt::WindowStaysOnTopHint|Qt::ToolTip); setWindowState(Qt::WindowActive|Qt::WindowFul...
  • jin_huan11
  • jin_huan11
  • 2015年05月18日 20:13
  • 1753

解析Qt自带的Style示例

本文转自chenlong12580的专栏    点击打开链接 在之前的QStyle类参考一文中我们介绍到实现自定义样式有两种方法:静态方法和动态方法。我们先介绍静态方法:也就是继承已经存...
  • lujunql
  • lujunql
  • 2015年01月05日 13:46
  • 1433

qml Rectangle中clip属性效果

import QtQuick 2.2 Rectangle { id: root width: 800; height: 600 Rectangle { ...
  • chenyijun
  • chenyijun
  • 2014年06月12日 00:08
  • 1939

Delaunay三角剖分原理及Qt程序实现

给老师做完项目已经过去一段时间了,回想一下项目中学习到的东西,觉得还是找个地方记下来比较好,当然这也是第一写博客,写的不好还请见谅~下面开始正题 Delaunay三角剖分介绍 如图所示 图中的...
  • eularisu
  • eularisu
  • 2017年03月03日 16:23
  • 317

Qt 不使用Qt Designer纯代码编写界面程序(初学者)总结

题记:从本科大一开始到现在,自己学计算机已经四年了,但是发现自己没有写过博客,心里捣鼓这件事由来已久,于是今天终于动手写博客了,不足之处望大家见谅。      刚学Qt时,发现这是一个陌生的IDE。学...
  • jacayang
  • jacayang
  • 2013年07月25日 16:18
  • 3332

QT::QColor

QColor 类参考 QColor用于提供基于RGB,HSV,CMYK等组件的色彩值。 Public Types         enum Spec { Rgb, Hsv, Cmyk, Hsl,...
  • Free_Program_1314
  • Free_Program_1314
  • 2012年06月21日 19:09
  • 31010

Qt如何用颜色选择器获取透明色?

话说以前在用Qt颜色选择器(QColorDialog)时就遇到问题,不知道怎么获取透明色。忘了是怎样绕过这个问题,不管怎样能解决的问题尽量不要绕过的好。回到正题, QColorDialog默认时如下,...
  • can3981132
  • can3981132
  • 2016年08月18日 15:51
  • 1244

自定义RGB位图使用Alpha通道处理透明效果

当自定义位图(根据自定义函数动态生成的 长X宽 颜色像素点阵图像)显示透明效果时,在window操作系统下,我们可以使用TransparentBlt函数来实现,Qt在处理透明图像中有很多强大的功能。因...
  • liuxuezong
  • liuxuezong
  • 2010年12月25日 14:21
  • 4685

Qt QRegion裁剪区域实现部分区域刷新 避免闪烁区域太大

QRegion为painter指定一个裁剪区域。  QRegion 是使用 QPainter:setClipRegion ()来限制画图区域。 还有一个 QWidget:repaint()函数,它接受...
  • u013255206
  • u013255206
  • 2017年04月21日 11:17
  • 945

解析Qt自带的Style示例

在之前的QStyle类参考一文中我们介绍到实现自定义样式有两种方法:静态方法和动态方法。我们先介绍静态方法:也就是继承已经存在的类,不是QStyle,通常是QCommonStyle或者是QWindow...
  • imxiangzi
  • imxiangzi
  • 2015年09月01日 00:04
  • 886
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Qt 实用技巧
举报原因:
原因补充:

(最多只允许输入30个字)