• 7978阅读
  • 6回复

[提问]Qt背景填充问题 [复制链接]

上一主题 下一主题
离线ltx352135591
 

只看楼主 倒序阅读 楼主  发表于: 2013-12-12
我通过实现paintEvent来实现填充背景的功能。

QPainter painter(this);
painter.drawPixmap(0,0,1235,749,QPixmap(":/bg/background/bg02.png"));
现在有个问题是,我填充的图片在全屏放大后,只在左上角的区域显示。我想其他的区域通过填充边的颜色
我该怎么实现这个功能呢,谢谢。
离线dbzhang800

只看该作者 1楼 发表于: 2013-12-12
可能你想要的是 border image 这种东西。qss 支持这个东西。如果你愿意,你也可以直接用QPainter来绘制分割后的9个图片
离线起点0615

只看该作者 2楼 发表于: 2013-12-12
谢谢分享!!!
离线ltx352135591

只看该作者 3楼 发表于: 2013-12-13
回 1楼(dbzhang800) 的帖子
你好,用border image是全部区域都会绘制该图片,我想的效果是在左上角的区域显示这张图片的大小,然后剩下的区域进行边的延伸颜色的渲染,这个该怎么做呢。

只看该作者 4楼 发表于: 2013-12-13
为了颜色差距不那么大,你可以在原图里分割一小部分图片(几像素),然后进行放大,与之前的图片进行拼接就行了!
关于合并与切分请参考:Qt之图标切分与合并
博客地址:https://waleon.blog.csdn.net
微信公众号:高效程序员
QQ 群:242790253
微信群:加微信(iwaleon),邀请入群。

承接各种 C++/Qt/QML 项目,专业的团队,一流的服务,不二的选择!
离线dbzhang800

只看该作者 5楼 发表于: 2013-12-13
Re:回 1楼(dbzhang800) 的帖子
引用第3楼ltx352135591于2013-12-13 09:26发表的 回 1楼(dbzhang800) 的帖子 :
你好,用border image是全部区域都会绘制该图片,我想的效果是在左上角的区域显示这张图片的大小,然后剩下的区域进行边的延伸颜色的渲染,这个该怎么做呢。

如果如你所说,剩下部分都是填充某种颜色,问题应该就简单了。直接填满那种颜色,然后在左上角绘制你的图片即可。

如果如楼上所说,不是填充纯色,那么border image就应该适合于你。无非是你这横切两刀和竖切两刀都靠近图片右下角
离线ltx352135591

只看该作者 6楼 发表于: 2013-12-17
好的,谢谢大家的方法。我是通过截取图片边缘的几个像素,填满整个区域,然后再把原图贴到左上角。不过还想实现渐变的效果,没有这个效果看起来怪怪的,不好看。
快速回复
限100 字节
 
上一个 下一个