首页| 论坛| 消息

标题:Qt编写自定义控件26-平铺背景控件
作者:liudianwu
日期:2019-07-14 15:11
内容:

一、前言
平铺背景控件,主要的应用场景是作为画布出现,黑白相间的背景图,然后上面可以放置图片图形等,使得看起来更美观,比如PS软件新建图层以后的背景,FireWorks软件新建画布以后的透明背景,ICO制作软件新建画布以后的背景,都会采用一个黑白相间的背景。尽管本人用QPainter很多年,后面在翻阅QPainter自带的函数中才发现居然QPainter自带了这个绘制平铺背景的函数,擦,他么叫drawTiledPixmap,Qt不愧是跨平台GUI开发中的佼佼者,这些东西居然都考虑到了,说到考虑的周到,Qt中连size和count和length都完美的封装了,适合不同人群的使用习惯,这个考虑也是非常周到的。drawTiledPixmap就两个参数,第一个参数是要绘制的区域,第二个参数是要绘制的图片,图片不足会自动拷贝填充,所以如果提供的是两个交替颜色的背景图片,就会依次绘制形成平铺背景的效果,为了使得颜色可以控制,本控件增加了交替颜色的设置,可以自行传入两种颜色作为交替颜色,在程序内部自动生成要绘制的图片。
二、实现的功能
* 1:可设置交替背景颜色
三、效果图

四、头文件代码
#ifndef TILEDBG_H
#define TILEDBG_H
/**
* 平铺背景控件 作者:feiyangqingyun(QQ:517216493) 2018-8-25
* 1:可设置交替背景颜色
*/
#include
#ifdef quc
#if (QT_VERSION < QT_VERSION_CHECK(5,7,0))
#include
#else
#include
#endif
class QDESIGNER_WIDGET_EXPORT TiledBg : public QWidget
#else
class TiledBg : public QWidget
#endif
{
Q_OBJECT
Q_PROPERTY(QColor color1 READ getColor1 WRITE setColor1)
Q_PROPERTY(QColor color2 READ getColor2 WRITE setColor2)
Q_PROPERTY(QPixmap bgPix READ getBgPix WRITE setBgPix)
public:
explicit TiledBg(QWidget *parent = 0);
protected:
void drawBg();
void paintEvent(QPaintEvent *);
private:
QColor color1; ..


#1 [uidab 07-14 15:18]
又分享了

回复 发表
主题 版块