• 今晚又失眠了,最近睡眠质量很差啊。

  • QsciScintilla 一个很好用的文本编辑器库

  • 愿逝者安息,愿生者奋发,愿祖国昌盛,致敬英雄

  • 身体是革命的本钱,猿(媛)仔们注意身体呀

  • 所谓”事务“就是指一组 SQL 命令,这些命令要么一起执行,要么都不被执行。

  • 遍历 for 循环时将,将外层写成函数,内层写成回调函数模式。

  • 网站被攻击了烦死了,今天一天都不能访问了

  • wordpress 官网抽风不能升级了!

  • Python 中 input 函数返回的始终是一个字符串。

  • 只有符合整数规范的字符串类数据,才能被 int()强制转换。因此:字符串’3.8’是不能被转换哟

Qt阴影效果

随心所欲 2019-11-04 09:53:50 616次浏览 0个评论 扫描二维码
文章目录[隐藏]

功能说明-按钮(Qt 阴影效果)

以下代码主要实现Qt 阴影效果,我用的是按钮

#include <QGraphicsDropShadowEffect>
void CustomWindow::dropShadowEffect(QWidget* widget) 
{ 
	QGraphicsDropShadowEffect* effect = new QGraphicsDropShadowEffect; effect->setBlurRadius(6); 
	effect->setColor(QColor(0, 0, 0, 100)); 
	effect->setOffset(0,0); 
	widget->setGraphicsEffect(effect); 
}

Qt 按钮阴影效果展示

Qt阴影效果

功能说明-窗体(Qt 阴影效果)

// 重写窗体的 paintEvent
#include <QPainter>
void CustomWindow::paintEvent(QPaintEvent *event)
{
	QPainterPath path;
	path.setFillRule(Qt::WindingFill);
	path.addRect(10, 10, this->width()-20, this->height()-20);

	QPainter painter(this);
	painter.setRenderHint(QPainter::Antialiasing, true);
	painter.fillPath(path, QBrush(Qt::white));

	QColor color(0,0,0,0);
	int arr[10] = {150,120,80,50,40,30,20,10,5,5};
	for(int i=0; i<10; i++)
	{
	QPainterPath path;
	path.setFillRule(Qt::WindingFill);
	if(i == 5) {
	path.addRect(10-i-1, 10-i-1, this->width()-(10-i)*2, this->height()-(10-i)*2);
	} else {
	path.addRoundedRect(10-i-1, 10-i-1, this->width()-(10-i)*2, this->height()-(10-i)
	*2, 0, 0);
	}
	color.setAlpha(arr[i]);
	painter.setPen(color);
	painter.drawPath(path);

	}
	QWidget::paintEvent(event);

}

Qt 窗体阴影效果展示

Qt阴影效果

 

喜欢 (1)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址