• 10296阅读
  • 7回复

[提问]QT5中半透明背景的问题 [复制链接]

上一主题 下一主题
离线liuweilhy
 

只看楼主 倒序阅读 楼主  发表于: 2013-01-21
在Qt 5.0.0中:
1、setAttribute(Qt::WA_TranslucentBackground)会把PNG图像中的透明部分弄黑;
2、setAttribute(Qt::WA_TranslucentBackground)与setWindowFlags(Qt::FramelessWindowHint)一起使用时,程序运行直接报错:"0x00000000" 指令引用的 "0x00000000" 内存。该内存不能为 "read"。
如下:
setWindowFlags(Qt::FramelessWindowHint);
setAttribute(Qt::WA_TranslucentBackground);
伏惟求解。望高手不吝赐教!多谢!
离线roywillow

只看该作者 1楼 发表于: 2013-01-21
印象中Qt4中,TranslucentBackground确实要和FramelessWindowHint一起使用才行,至少windows下如此,没出现问题
不过Qt5还从来没试过……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线orafy

只看该作者 2楼 发表于: 2013-01-21
楼主用的是XP吧,这是个Qt5的BUG,
UpdateLayeredWindowIndirect XP还没这个API,Qt5用了,所以运行时出错了,
静等5.0.1或者自己fix一下吧
离线liuweilhy

只看该作者 3楼 发表于: 2013-01-21
回 2楼(orafy) 的帖子
多谢指教!我在windows7上试验就成功了。
离线realfan

只看该作者 4楼 发表于: 2013-01-21
回 2楼(orafy) 的帖子
  
离线cool609

只看该作者 5楼 发表于: 2013-01-26
setWindowFlags(Qt::FramelessWindowHint);
setAttribute(Qt::WA_TranslucentBackground);
我在win7上使用,没有报错,但是有个问题。就是每次刷新调用一次paintevent事件颜色就会加重一次,直至整个界面黑掉。以前qt4就没有这个问题。大家有没有同样问题的?
离线xsjqqq123

只看该作者 6楼 发表于: 2013-01-29
背景透明?以前做过一个软件,设置要透明的东东的第四个颜色值就行了吧?
离线cool609

只看该作者 7楼 发表于: 2013-02-02
回 6楼(xsjqqq123) 的帖子
恩,修改brush中颜色的alpha值。。。我装了Qt5后,paintevent刷新一次颜色就加重一次,感觉像是没有把以前的东西清除,直接叠加上去的。以前Qt4.8.2就没事
快速回复
限100 字节
 
上一个 下一个