• 8766阅读
  • 4回复

[讨论]怎么设置按钮的透明度? [复制链接]

上一主题 下一主题
离线青春岁月
 

只看楼主 倒序阅读 楼主  发表于: 2011-03-01
大家帮帮忙怎么设置按钮的透明度啊?
go!   go!  go!  go!
离线roywillow

只看该作者 1楼 发表于: 2011-03-01
半透明的按钮是吗?
我的做法是,继承按钮,重载paintEvent,然后直接把原来按钮的paintEvent的代码复制过来,但是要在painter绘制之前把painter的透明度改一下
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线青春岁月

只看该作者 2楼 发表于: 2011-03-01
回 1楼(roywillow) 的帖子
有这一段详细的代码吗?有能发给我吗?我的邮箱是:wangzhongkai001@gmail.com
go!   go!  go!  go!
离线kimtaikee

只看该作者 3楼 发表于: 2011-03-01
void    setWindowOpacity ( qreal level )

离线roywillow

只看该作者 4楼 发表于: 2011-03-01
引用第3楼kimtaikee于2011-03-01 12:54发表的  :
void    setWindowOpacity ( qreal level )

这个只对窗口有用,内部的组件好像就无效了

我是这么写的
void ShowHideButton::paintEvent(QPaintEvent *e)
{
    QStylePainter painter(this);
    QStyleOptionButton option;
    initStyleOption(&option);
    painter.setOpacity(_buttonOpacity);
    painter.drawControl(QStyle::CE_PushButton, option);
}
_buttonOpacity是透明度,当然范围是0到1
其他代码就是直接抄袭QPushButton的了
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个