需求:无感按钮(透明按钮)
-
setFlat(true)的效果是:不点击按钮透明,点击按钮,能显示出来按钮本来的轮廓和颜色;
-
background-color: rgba(0, 0, 0, 0)的效果是:不点击按钮透明,点击按钮,显示按钮的轮廓,但是按钮是黑色的;
解决嵌入式设备,按钮按下背景颜色为黑色或者不同透明
- 使用setFlat函数实现按钮透明的效果
QPushButton *mode =new QPushButton(this);
mode->setFlat(true);//实现按钮透明的效果
但是有时 不一定 是设置
true
会生效,设置的为false
才生效
解决案例
- 无字体按键按下不透明
// 不生效
bt->setFlat(true);
bt->setFocusPolicy(Qt::NoFocus);
bt->setStyleSheet("QPushButton{font-size:24px;
color:#ffffff;text-align:left;border-color:rgba(0,0,0,0);}");
// 生效
bt->setFlat(false);
bt->setFocusPolicy(Qt::NoFocus);
bt->setStyleSheet("border:nonr;background:transparent;
color:#ffffff;text-align:left;font-size:24px;");
- 有字体按键按下不透明
// 不好使
bt->setStyleSheet("QPushButton{font-size:%24px;color:#ffffff;
text-align:left;background-color:rgba(0,0,0,0);}");
// 好使
bt->setStyleSheet("border:nonr;background:transparent;
color:#ffffff;text-align:left;font-size:24px;");
- 这样就可以按下透明,无需再设置空白透明图片了