Qss 阴影边框
来源:互联网 发布:淘宝限时秒杀问题 编辑:程序博客网 时间:2024/04/30 06:58
阴影边框很常见,诸如360以及其他很多软件都有类似效果,了解CSS3的同学们应该都知道box-shadow,它就是来设定阴影效果的,那么Qt呢?看过一些资料,说是QSS是基于CSS2的,既然如此,box-shadow是基于CSS3的!那么Qt定然就用不了!
搜了一些资料,每张图片都做成阴影效果的固然不可能,直接舍弃(即使可以,也不采纳)。如果实时的去画图,效率太低,最后选择了拼图的方式! 效果如下: 左上角、左下角、右上角、右下角、上、下、左、右,这几个方向都绘制对应的图即可!
: QDialog(parent) setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog); setAttribute(Qt::WA_TranslucentBackground);
QPainter painter(this); this->drawShadow(painter); painter.setPen(Qt::NoPen); painter.setBrush(Qt::white); painter.drawRect(QRect(SHADOW_WIDTH, SHADOW_WIDTH, this->width()-2*SHADOW_WIDTH, this->height()-2*SHADOW_WIDTH));
//绘制左上角、左下角、右上角、右下角、上、下、左、右边框 QList pixmaps; pixmaps.append(QPixmap(":/shadow/shadow_left")); pixmaps.append(QPixmap(":/shadow/shadow_right")); pixmaps.append(QPixmap(":/shadow/shadow_top")); pixmaps.append(QPixmap(":/shadow/shadow_bottom")); pixmaps.append(QPixmap(":/shadow/shadow_left_top")); pixmaps.append(QPixmap(":/shadow/shadow_right_top")); pixmaps.append(QPixmap(":/shadow/shadow_left_bottom")); pixmaps.append(QPixmap(":/shadow/shadow_right_bottom"));
painter.drawPixmap(0, 0, SHADOW_WIDTH, SHADOW_WIDTH, pixmaps[4]); painter.drawPixmap(this->width()-SHADOW_WIDTH, 0, SHADOW_WIDTH, SHADOW_WIDTH, pixmaps[5]); painter.drawPixmap(0,this->height()-SHADOW_WIDTH, SHADOW_WIDTH, SHADOW_WIDTH, pixmaps[6]); painter.drawPixmap(this->width()-SHADOW_WIDTH, this->height()-SHADOW_WIDTH, SHADOW_WIDTH, SHADOW_WIDTH, pixmaps[7]); painter.drawPixmap(0, SHADOW_WIDTH, SHADOW_WIDTH, this->height()-2*SHADOW_WIDTH, pixmaps[0].scaled(SHADOW_WIDTH, this->height()-2*SHADOW_WIDTH)); painter.drawPixmap(this->width()-SHADOW_WIDTH, SHADOW_WIDTH, SHADOW_WIDTH, this->height()-2*SHADOW_WIDTH, pixmaps[1].scaled(SHADOW_WIDTH, this->height()- 2*SHADOW_WIDTH)); painter.drawPixmap(SHADOW_WIDTH, 0, this->width()-2*SHADOW_WIDTH, SHADOW_WIDTH, pixmaps[2].scaled(this->width()-2*SHADOW_WIDTH, SHADOW_WIDTH)); painter.drawPixmap(SHADOW_WIDTH, this->height()-SHADOW_WIDTH, this->width()-2*SHADOW_WIDTH, SHADOW_WIDTH, pixmaps[3].scaled(this->width()-2*SHADOW_WIDTH, SHADOW_WIDTH));
写一个公共的类,如果窗口要实现阴影效果直接继承就行了!SHADOW_WIDTH为阴影边框的像素,可以根据自己的需求自由调节! 也可使用 QGraphicsDropShadowEffect来实现。。。
#include "shadow_widget.h"
ShadowWidget::ShadowWidget(QWidget *parent)
{
}
ShadowWidget::~ShadowWidget()
{
}
void ShadowWidget::paintEvent(QPaintEvent *event)
{
}
void ShadowWidget::drawShadow(QPainter &painter)
{
}
- Qss 阴影边框
- 边框、阴影
- 边框阴影
- 边框阴影
- CSS3边框图片、边框阴影、文本阴影
- 边框的阴影
- 立体阴影边框
- 边框为阴影效果
- Qt之阴影边框
- html CSS 阴影边框
- Qt之阴影边框
- Qt之阴影边框
- CSS 边框 阴影 效果
- Qt--圆形阴影边框
- 设置视图边框阴影
- UIview 加圆角,边框 阴影
- 边框阴影、轮廓、分栏
- vc对话框边框阴影
- linu常用命令之linux下获取命令帮助手册
- Dijkstra in python
- 小镇遇上二次元
- 【每天一个Linux命令】23. 目录切换命令cd
- 百度笔试题-1001人参加羽毛球赛,淘汰赛,当比出第一时进行了多少场比赛
- Qss 阴影边框
- CUDA, 用于大量数据的超级运算:第八节
- Win7上安装IIS7并运行.net4.0程序
- iOS ShardSDK-如何自定义分享菜单中的平台列表
- EXPDE/IMPDP使用详解
- hdu 4119 Isabella's Message(模拟+字典树)
- linux常用命令之文件目录操作命令
- 使用HttpSessionListener和ServletContextListener实现在线人数和历史访问人数统计的问题
- eclipse导入jar包的方法