• 5922阅读
  • 15回复

[提问]请教高手如何实现当弹出子窗户后,父窗口变暗的效果 [复制链接]

上一主题 下一主题
离线ffii4455
 

只看楼主 倒序阅读 楼主  发表于: 2012-02-16
关键词: 窗口
RT,怎样才能让一个窗口变暗呢~~
离线ffii4455

只看该作者 1楼 发表于: 2012-02-16
没有人知道吗?还是QT无法实现这样的效果。再网上都搜不到有关这方面的东西
离线roywillow

只看该作者 2楼 发表于: 2012-02-16
可以考虑一下QGraphicsEffect之类的东西?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线jdwx

只看该作者 3楼 发表于: 2012-02-16
回 楼主(ffii4455) 的帖子
试试修改调色板。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线ffii4455

只看该作者 4楼 发表于: 2012-02-16
回 2楼(roywillow) 的帖子
这个方法我在QT高级编程里也见到了,但是我一用,窗口底色就会变成黑色。。。winxp
离线roywillow

只看该作者 5楼 发表于: 2012-02-16
好像确实是一用底色就成黑色,我给一个主窗口使用了blureffect之后就是那样的
有没有试过让所有组件都先放进一个QWidget里,然后将这个QWidget里放进主窗口,并且效果应用给QWidget?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线ffii4455

只看该作者 6楼 发表于: 2012-02-16
回 5楼(roywillow) 的帖子
我没有试过那样,我刚才又试了一下。给主窗口弹出的widget上使用效果。widget的背景会变成黑色。直接给主窗口上使用的话可以显示出效果。但是这个效果只包含了主窗口上的部件(加颜色、加模糊什么的只应用在了主窗口的部件上,主窗口本身没变化。而且那些按钮功能可以使用,但是点击没有动画。。。
离线ffii4455

只看该作者 7楼 发表于: 2012-02-16
回 3楼(jdwx) 的帖子
求详解啊~~
离线rcyboom

只看该作者 8楼 发表于: 2012-02-17
set所有控件的enable为false貌似就达到你需要的效果了吧(disable时候的样子可以直接使用sheetstytle指定)。
离线ffii4455

只看该作者 9楼 发表于: 2012-02-17
回 8楼(rcyboom) 的帖子
非常谢谢你的回答。但是我想要的是窗口亮度的变暗。。。你有什么好办法吗?
离线rcyboom

只看该作者 10楼 发表于: 2012-02-17
我试了下,使用如下方法可以,不过貌似麻烦点
    QPalette p(this->palette ());
//------
    QColor c=p.color (QPalette::Normal,QPalette::Window);
   c.setRed (c.red()*0.8);
   c.setBlue(c.blue ()*0.8);
   c.setGreen(c.green ()*0.8);
   p.setColor (QPalette::Normal,QPalette::Window,c);
//--------
   this->setPalette (p);
   this->repaint ();
这个是直接改变window的背景色,如果还有别的控件,貌似需要多设置几次color。也就是注释中间的代码需要多几遍,每次换用不同的参数替换QPalette::Window
离线roywillow

只看该作者 11楼 发表于: 2012-02-18
不需要自己set每一个值也可以的
QColor本身就提供了dark()、darker()、light()、lighter()之类的函数了
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线ffii4455

只看该作者 12楼 发表于: 2012-02-18
回 10楼(rcyboom) 的帖子
你这个方法我还有没有试,但是我看到QT帮助上面有可以让窗口变模糊的类,你试过没有?
离线roywillow

只看该作者 13楼 发表于: 2012-02-19
回 12楼(ffii4455) 的帖子
那个不是QGraphicsBlurEffect吗?我用过之后窗口背景也成黑色的了
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线ffii4455

只看该作者 14楼 发表于: 2012-02-19
回 13楼(roywillow) 的帖子
对啊,除了那个透明效果。模糊,着色都会让窗口背景变黑。。。但是如果把添加效果的代码现在主窗口的一个槽函数里(比如由一个按钮点击触发),那么特效就能出来。不过,特效只应用在了窗口部件上,窗口本身没用。而且窗口部件的动画效果也全部失效。。。。
一直很纠结啊
离线wb19861202
只看该作者 15楼 发表于: 2012-02-20
创建QDialog对象,他有方法exec()可以实现
快速回复
限100 字节
 
上一个 下一个