一 场景
UI 提供一张背景图片,而窗口控件大小不固定,如何实现效果?
例如,背景图片如下:
(.png 22*34)
实现背景效果如下:

二 实现
1. 思路
首先,直接将背景图片缩放到窗口控件大小是不合适的,图片变形、像素模糊,体验差。
优化方案是局部缩放,增强体验:将背景图片拆分(例如井字格),分别绘制到窗口控件的相应部分。
主要借助 QPainter 的 drawImage 重载函数:
void drawImage(int x, int y, const QImage &image, int sx = 0, int sy = 0, int sw = -1,
int sh = -1, Qt::ImageConversionFlags flags = Qt::AutoColor)
2. 背景图片拆分
typedef unsigned int _uint;
// 拆分"模具"
struct _uint_rect
{
_uint_rect(_uint l, _uint t, _uint r, _uint b)
: left(l), top(t), right(r), bottom(b) {}
_uint left, top, right, botto

最低0.47元/天 解锁文章
369

被折叠的 条评论
为什么被折叠?



