QDialog圆角

做了一个系统登录界面,登录背景图是在Qt Designer中设置Stylesheet加载出来的。背景图显示后在背景图相应位置添加用户名,密码,登陆按钮等控件。

现在的问题是:当设置了登陆框为圆角时(styleSheet内容:#LoginDlg{background-image: url(:/Login/Bin/Debug/skins/black/images/loginIcon/login-logo.png);border-radius:20px},背景图被裁剪成圆角了,但整个登陆框并没有剪成圆角,四个角会露出白色部分。

解决方法:

 1. 重新做了一个背景图,photoshop编辑背景图radius为20,四个角透明。

  2.styleSheet只需要加载背景图Qss:#LoginDlg{background-image: url(:/Login/Bin/Debug/skins/black/images/loginIcon/login-logo.png);}

  3.LoginDlg源程序中获得该背景图

如:QPixmap pm(":Login/Bin/Debug/skins/black/images/loginIcon/login-logo.png");

LoginDlg设置mask为pm.mask()即可 :setMask(pm.mask());

因为我的WindowFlags为Qt::FramelessWindowHint,所以不会放大缩小该登陆框。

如果可以放大缩小,应该加上

QPalette pal = this->palette();
pal.setBrush(QPalette::Background,QBrush(pm));
resize(pm.size());
setMask(pm.mask());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值