免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 11547 | 回复: 5
打印 上一主题 下一主题

请教wxPython中如何设置背景为透明 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-16 11:18 |只看该作者 |倒序浏览
现在我有急迫而无可奈何的问题要解决,希望了解的朋友帮个忙。

我想在桌面上按图象来建立一个不规则窗口,让图象透明部分不显示。所以我在Frame中使用了几个属性,包括wx.FRAME_SHAPED等属性。然后我使用图片来试,发现同样是透明背景的图,有的图可以实现窗口的部分透明,有的不可以,而且我真正需要的图并不可以。搞了很长时间也不明白。

现在发现,图片背景确实是透明的。比如,使用

  1. dc.SetBackground(wx.RED_BRUSH)
  2. dc.Clear()
复制代码

之后,原来应该透明的部分就变成红色。我试过使用wx.TRANSPARENT_BRUSH画刷,结果背景会变成黑色。wx.Colour也似乎并不支持alpha通道。

我需要:将窗口的背景设为透明。

现在十分郁闷。哪位能帮下我?

多谢。

论坛徽章:
0
2 [报告]
发表于 2006-10-16 11:55 |只看该作者
现在觉得可能是这里出问题:

  1. r = wx.RegionFromBitmap(p)
  2. self.SetShape(r)
复制代码

或许Region获取的有问题。郁闷,不知道是PNG哪里不对。

论坛徽章:
0
3 [报告]
发表于 2006-10-16 13:12 |只看该作者
  1. p.GetMask()
复制代码

返回值为None。
为什么会这样?我在Python代码中手动设置Bitmap的Mask,但是怎么把透明值设置为mask?我现在都不知道怎么获取Bitmap某位置上的Color。或者有什么工具可以向PNG中写入Mask?
持续郁闷中。

论坛徽章:
0
4 [报告]
发表于 2006-10-16 14:18 |只看该作者
wxpython自带的demo里面有个例子你可以去看看

论坛徽章:
0
5 [报告]
发表于 2006-10-16 15:05 |只看该作者
我就是参照那个写的啊,他的那个PNG图不知道为什么可以自动设置Mask。
现在我修改图片,把原来透明的地方都改成某种不透明的颜色,然后手动设置位图的Mas为此颜色。暂时讲究用了。
真不爽啊。

论坛徽章:
0
6 [报告]
发表于 2009-01-22 22:52 |只看该作者

来结帖了

我也遇到了这个问题,找到了最后的方法,的确是mask的问题
img.SetMask(wx.Mask(img, wx.WHITE))
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP