• 7199阅读
  • 4回复

setMask制作不规则窗体反走样(抗锯齿)效果 [复制链接]

上一主题 下一主题
离线nanzsn
 
只看楼主 倒序阅读 楼主  发表于: 2013-07-21
在做仪表盘的时候,用圆形QRegion作为setMask函数的参数,为了使边缘平滑,使用函数 painter.setRenderHint(QPainter::Antialiasing,true);但奇怪的是,锯齿依然存在,没有效果,但是把setMask这句注释掉的时候,抗锯齿的效果就会出现了,不知道为什么?
离线pxiao_xiao

只看该作者 1楼 发表于: 2013-07-21
setMask是否在PainterEvent()之外?
离线nanzsn
只看该作者 2楼 发表于: 2013-07-22
在内部外部都试过了,是不是QRegion不可以进行平滑操作或设置,但是QBitmap可以呢?
离线roywillow

只看该作者 3楼 发表于: 2013-07-22
mask只是个bitmap,是不存在边界抗锯齿的过渡色的
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线jdwx

只看该作者 4楼 发表于: 2013-07-22
引用第3楼roywillow于2013-07-22 18:03发表的  :
mask只是个bitmap,是不存在边界抗锯齿的过渡色的

+1,setmask是按照像素处理图片的,就是删除或者保留一个像素,自然是有锯齿的。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
快速回复
限100 字节
 
上一个 下一个