新浪微博
腾讯微博
会员列表
统计排行
基本信息
到访IP统计
管理团队
管理统计
在线会员
会员排行
版块排行
帖子排行
标签排行
帮助
下拉
用户名
电子邮箱
用户名
密 码
记住登录
登录
找回密码
注册
快捷通道
关闭
您还没有登录,快捷通道只有在登录后才能使用。
立即登录
还没有帐号? 赶紧
注册一个
首页
论坛
Qt下载
作品展
群组
个人中心
捐赠、管理与开发
邮件订阅
帖子
文章
日志
用户
版块
群组
帖子
搜索
QTCN开发网
>
Qt基础编程
>
关于窗口圆角不够圆滑的问题
发帖
回复
返回列表
新帖
5519
阅读
11
回复
[提问]
关于窗口圆角不够圆滑的问题
[复制链接]
上一主题
下一主题
离线
phpqinsir
UID:138742
注册时间
2012-11-26
最后登录
2013-11-21
在线时间
83小时
发帖
70
搜Ta的帖子
精华
0
金钱
720
威望
80
贡献值
0
好评度
70
访问TA的空间
加好友
用道具
新手上路
关闭
个人中心可以申请新版勋章哦
立即申请
知道了
加关注
发消息
只看楼主
倒序阅读
楼主
发表于: 2012-11-30
我已经通过重写
paintEvent
事件
将代码里面做了如下操作:
复制代码
// 生成一张位图
QBitmap objBitmap(size());
// QPainter用于在位图上绘画
QPainter painter(&objBitmap);
// 圆角平滑
painter.setRenderHints(QPainter::Antialiasing
|QPainter::HighQualityAntialiasing
|QPainter::SmoothPixmapTransform, true);
// 填充位图矩形框(用白色填充)
painter.fillRect(rect(), Qt::white);
painter.setBrush(QColor(0, 0, 0));
// 在位图上画圆角矩形(用黑色填充)
painter.drawRoundedRect(this->rect(), 5, 5);
// 使用setmask过滤即可,被圆角切除部分用白色填充
setMask(objBitmap);
但是,圆角是实现了,可是那个角它不是圆滑。我也已经设置了
:Antialiasing属性。效果图如下:
图片:RTX截图未命名.png
我看到像QQ和360这样的软件,圆角很平常,而且还有一条细边框。他们是怎么实现的呢?求各位赐教!!!谢了。!
共
条评分
qtcn.org是我见过最热心的论坛,也是解决问题率最高的论坛。希望,我的问题能让更多的人少走弯路。
回复
举报
分享到
淘江湖
新浪
QQ微博
QQ空间
开心
人人
豆瓣
网易微博
百度
鲜果
白社会
飞信
离线
roywillow
UID:97396
注册时间
2010-05-15
最后登录
2021-09-20
在线时间
5071小时
发帖
2897
搜Ta的帖子
精华
5
金钱
29175
威望
2924
贡献值
2
好评度
2916
访问TA的空间
加好友
用道具
精灵王
加关注
发消息
只看该作者
1楼
发表于: 2012-11-30
尝试用更大一些的半径呢?
共
条评分
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
回复
举报
离线
phpqinsir
UID:138742
注册时间
2012-11-26
最后登录
2013-11-21
在线时间
83小时
发帖
70
搜Ta的帖子
精华
0
金钱
720
威望
80
贡献值
0
好评度
70
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
2楼
发表于: 2012-11-30
回 1楼(roywillow) 的帖子
更大的半径,那就没有意义了。那么大的半径,更不美观了。我试着1至10像素的半径,都那样。唉。
共
条评分
qtcn.org是我见过最热心的论坛,也是解决问题率最高的论坛。希望,我的问题能让更多的人少走弯路。
回复
举报
离线
0354030w
UID:95130
注册时间
2010-04-09
最后登录
2015-07-13
在线时间
93小时
发帖
164
搜Ta的帖子
精华
0
金钱
1705
威望
177
贡献值
0
好评度
167
访问TA的空间
加好友
用道具
侠客
加关注
发消息
只看该作者
3楼
发表于: 2012-11-30
用样式表试试呢?
共
条评分
回复
举报
离线
roywillow
UID:97396
注册时间
2010-05-15
最后登录
2021-09-20
在线时间
5071小时
发帖
2897
搜Ta的帖子
精华
5
金钱
29175
威望
2924
贡献值
2
好评度
2916
访问TA的空间
加好友
用道具
精灵王
加关注
发消息
只看该作者
4楼
发表于: 2012-11-30
回 2楼(phpqinsir) 的帖子
之前没仔细看你的代码
你用的是bitmap做mask来实现圆角?
bitmap这东西不支持alpha通道吧,正如其名,他是个bit map……用它来做mask,任何一点只有有和无的区别,而没有在两者之间的过渡,所以圆角处就没有任何过渡了
共
条评分
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
回复
举报
离线
roywillow
UID:97396
注册时间
2010-05-15
最后登录
2021-09-20
在线时间
5071小时
发帖
2897
搜Ta的帖子
精华
5
金钱
29175
威望
2924
贡献值
2
好评度
2916
访问TA的空间
加好友
用道具
精灵王
加关注
发消息
只看该作者
5楼
发表于: 2012-11-30
参考一下Qt::WA_TranslucentBackground,然后直接在paintEvent中绘制带alpha通道的图片就好了
共
条评分
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
回复
举报
离线
phpqinsir
UID:138742
注册时间
2012-11-26
最后登录
2013-11-21
在线时间
83小时
发帖
70
搜Ta的帖子
精华
0
金钱
720
威望
80
贡献值
0
好评度
70
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
6楼
发表于: 2012-12-01
回 5楼(roywillow) 的帖子
唯有再试试你说的这种方式。非常感谢你的回复。试了之后再来结贴。
共
条评分
qtcn.org是我见过最热心的论坛,也是解决问题率最高的论坛。希望,我的问题能让更多的人少走弯路。
回复
举报
离线
phpqinsir
UID:138742
注册时间
2012-11-26
最后登录
2013-11-21
在线时间
83小时
发帖
70
搜Ta的帖子
精华
0
金钱
720
威望
80
贡献值
0
好评度
70
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
7楼
发表于: 2012-12-01
回 3楼(0354030w) 的帖子
样式表试过,依然如此。
共
条评分
qtcn.org是我见过最热心的论坛,也是解决问题率最高的论坛。希望,我的问题能让更多的人少走弯路。
回复
举报
离线
ffii4455
UID:117951
注册时间
2011-06-13
最后登录
2020-10-19
在线时间
344小时
发帖
171
搜Ta的帖子
精华
0
金钱
1770
威望
186
贡献值
0
好评度
176
访问TA的空间
加好友
用道具
侠客
加关注
发消息
只看该作者
8楼
发表于: 2012-12-01
貌似本来就是这样的。。。你看看qq登陆的那个圆角。也没觉得不美观啊。本来就半径太小
共
条评分
回复
举报
离线
phpqinsir
UID:138742
注册时间
2012-11-26
最后登录
2013-11-21
在线时间
83小时
发帖
70
搜Ta的帖子
精华
0
金钱
720
威望
80
贡献值
0
好评度
70
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
9楼
发表于: 2012-12-03
感谢上面几位朋友回答,我还是没有找到更好的圆角解决方案。CSS是行不能的。
共
条评分
qtcn.org是我见过最热心的论坛,也是解决问题率最高的论坛。希望,我的问题能让更多的人少走弯路。
回复
举报
离线
shiziyang
UID:110681
注册时间
2011-01-01
最后登录
2023-09-19
在线时间
1267小时
发帖
269
搜Ta的帖子
精华
0
金钱
2796
威望
282
贡献值
1
好评度
272
访问TA的空间
加好友
用道具
侠客
加关注
发消息
只看该作者
10楼
发表于: 2012-12-03
用画圆角的方法出来的东西就是这个效果的(包括设置qss和setMask(QRegion)),你需要用photoshop之类的软件做一张带透明色的背景图(各种柔滑和渲染效果都做在图里),然后使用该图来setMask和drawPixmap
共
条评分
回复
举报
离线
phpqinsir
UID:138742
注册时间
2012-11-26
最后登录
2013-11-21
在线时间
83小时
发帖
70
搜Ta的帖子
精华
0
金钱
720
威望
80
贡献值
0
好评度
70
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
11楼
发表于: 2012-12-03
回 10楼(shiziyang) 的帖子
不是美工料子,真心纠结很。呵呵。我觉得你的这个方法可行,但是。对于纯程序员的我来说,难度太大。有机会让我的美工同事帮忙做一张。
共
条评分
qtcn.org是我见过最热心的论坛,也是解决问题率最高的论坛。希望,我的问题能让更多的人少走弯路。
回复
举报
发帖
回复
返回列表
http://www.qtcn.org/bbs
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问
快速回复
限100 字节
您目前还是游客,请
登录
或
注册
进入高级模式
文字颜色
发 布
回复后跳转到最后一页
上一个
下一个
关闭
补充发布信息
验证码:
发 布
隐藏
快速跳转
站务及资讯
网站公告
新闻资讯
Qt官方发布
网站管理
Qt应用及资源
Qt 作品展
Qt代码秀
Qt应用版
Qt技术讨论区
Qt安装与发布
Qt中文处理
Qt基础编程
Qt QML开发
Qt嵌入式开发
Qt移动平台开发
其它技术开发讨论区
Qt图书专区
《C++ GUI Qt 4编程》(第2版)专栏
《Qt高级编程》专栏
《零基础学Qt4编程》专栏
《Qt设计模式》(第2版) 图书专栏
Python Qt GUI快速编程
Qt项目开发区
天池项目
Qt开放平台开发库
Qt版百度云笔记
机械CAD
Qt文档计划
QTCN网站系统开发
扇贝词典
非活跃项目区
社区中心
帖子回收站(Trash)
招聘、求职、供求、广告等
休闲娱乐
关闭
关闭
选中
1
篇
全选