找回密码
 立即注册
收起左侧

QBrush纹理绘图如何从图片左上角开始?

6
回复
6136
查看
[复制链接]
累计签到:38 天
连续签到:1 天
来源: 2015-5-19 10:00:34 显示全部楼层 |阅读模式
     
图片尺寸50*90
图B是直接drawPixmap("1.png");
图A是brush.setTexture("1.png");
painter.setBrush(brush);
painter.drawRect(100,100,50,90);
为什么不是从左上角开始画?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

累计签到:1 天
连续签到:1 天
2015-5-19 10:52:19 显示全部楼层
是这个drawRect的问题,QBrush与对象用的是同一坐标系,如果你想要实现以上的效果,那么将drawRect里的参数改为0, 0, 50, 90即可
回复 支持 反对

使用道具 举报

累计签到:38 天
连续签到:1 天
2015-5-19 12:57:36 显示全部楼层
kidding 发表于 2015-5-19 10:52
是这个drawRect的问题,QBrush与对象用的是同一坐标系,如果你想要实现以上的效果,那么将drawRect里的参数 ...

这样的话,怎么调整drawRect矩形的位置?
我改成(0,0)画出来确实和原图一样了,但是位置却只能在窗口左上角
回复 支持 反对

使用道具 举报

累计签到:38 天
连续签到:1 天
2015-5-19 16:37:53 显示全部楼层
kidding 发表于 2015-5-19 10:52
是这个drawRect的问题,QBrush与对象用的是同一坐标系,如果你想要实现以上的效果,那么将drawRect里的参数 ...

用这个方法解决了:
QTransform transform;
transform.translale(100,100);
brush.setTransform(transform);
============================
请问你还有其它方法吗?
回复 支持 反对

使用道具 举报

累计签到:1 天
连续签到:1 天
2015-5-19 21:30:28 显示全部楼层
。。。调整矩形的位置不就行了
回复 支持 反对

使用道具 举报

累计签到:38 天
连续签到:1 天
2015-5-20 13:11:53 显示全部楼层
kidding 发表于 2015-5-19 21:30
。。。调整矩形的位置不就行了

调pianter位置才行吧。矩形前两个参数(0,0)不就是位置了
回复 支持 反对

使用道具 举报

累计签到:60 天
连续签到:1 天
2015-7-31 09:55:25 显示全部楼层
本帖最后由 ya162000 于 2015-7-31 09:57 编辑

用QPalette
EX:
QPixmap pix;
QPalette pall;
pall.setBrush(wid.backgroundRole(),QBrush(50,50,pix));

2个50
width,height

你参考参考
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了