Qt设置窗体背景渐变

摘要:
方案1:重写绘图事件并与1setAttribute(Qt::WA_TranslucentBackground)合作//设置窗体的透明度(此时,主窗体没有颜色(也不能设置颜色)。通常,您可以在主窗体中设置比主窗体小的小部件,然后设置小部件的颜色)1void Login::paintEvent(QPaintEvent*)2{3QPaintercontainer(this);4paint

方案一: 重写绘图事件,配合

1 setAttribute(Qt::WA_TranslucentBackground);//设置窗体透明(这个时候主窗体是没有颜色的(也不可以设置颜色),一般可设置一个比主窗体小一点的widget放在主窗体里,然后设置widget的颜色)
 1 void Login::paintEvent(QPaintEvent *)
 2 {
 3     QPainter painter(this);
 4     painter.setRenderHint(QPainter::Antialiasing, true);
 5 
 6     QColor color(Qt::black);
 7     for(int i=0; i<=5; i++)
 8     {
 9        QPainterPath path;
10        path.setFillRule(Qt::WindingFill);
11        path.addRect(5-i, 5-i, this->width()-(5-i)*2, this->height()-(5-i)*2);
12        color.setAlpha(150-qSqrt(i)*50);//通过改变颜色透明度达到渐变效果
13        painter.setPen(color);
14        painter.drawPath(path);
15     }
16 }

方案二: 使用QGraphicsDropShadowEffect,配合setAttribute(Qt::WA_TranslucentBackground)和setWindowFlags(Qt::FramelessWindowHint)使用

(一般可设置一个比主窗体小一点的widget放在主窗体里,然后设置widget的颜色和圆角等)

1 QGraphicsDropShadowEffect *shadow=new QGraphicsDropShadowEffect(this);
2 shadow->setOffset(0);
3 shadow->setBlurRadius(20);
4 shadow->setColor(Qt::red);
5 this->setGraphicsEffect(shadow);

免责声明:文章转载自《Qt设置窗体背景渐变》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MAC地址记录与重复检测系统利用CSS三角形实现的冒泡框下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Delphi XE5教程2:程序组织

内容源自Delphi XE5 UPDATE 2官方帮助《Delphi Reference》,本人水平有限,欢迎各位高人修正相关错误! 也欢迎各位加入到Delphi学习资料汉化中来,有兴趣者可QQ:34484690@qq.com   1 Program Organization 1         程序组织 Delphi programs are usuall...

WinForm窗体自适应分辨率

我们自己编写程序的界面,会遇到各种屏幕分辨率,只有自适应才能显的美观。实际上,做到这点也很简单,就是首先记录窗体和它上面控件的初始位置和大小,当窗体改变比例时,其控件的位置和大小也按此比例变化即可。因为窗体上控件的位置和大小是相对于自己所在的窗体的,也就是所谓的窗口坐标。     在这里我们只考虑相对于自己窗体的窗口坐标更简单,也就是成比例变化。为了多个窗...

WPF中为窗体设置背景图片

在WPF应用程式中,我们往往想为一个窗体设置一个中意的背景图,而不是单独的为这个Background设置成某种颜色或渐变颜色的背景。 在WPF 利用Expression Blend工具如何达到这种效果呢?比如我们想做一个登陆窗体界面,界面效果如下图所示: 下面我就大概说下过程,首页建立一个工程为WpfLoginView,并在Expression Blen...

QT入门-在窗体中添加按钮以及对窗体进行设置

1) QT中,按钮类叫做QPushButton。在mywidget.h的MyWidget类的私有变量中: QPushButton b1; 或者QPushButton* b2;按住F4可以直接跳到.cpp文件。 2) 按钮初始化:在窗口类的构造函数里初始化即可。b2=new QPushButton(…)选中按F1可以查看构造函数以及其参数。 QPushBu...

DotNetBar教程

DotNetBar是一组用于.NET Framework环境下的一组组件集,利用该组件集能够打造绚丽并且实用的应用程序界面,给开发人员提供极大的便利。关于DotNetBar,详情请参考其官方网站:http://www.devcomponents.com 该组件集目前最新版本是8.8(不知最近有没有升级版本),可以从该网站上下载到试用期为一个月的试用版本。...

怎样能使winform窗体的大小固定住,不能调整其大小

窗体FormBorderStyle属性设置为:FixedSingle,再把最大化禁用就可以了 使用.Net编写Windows程序,对于窗体控制常见项目 属性:1、让窗体在启动时在指定位置出现 form1.StartPosition Manual CenterScreen WindowsDefaultLocation (default) Window...