1.新建Gui应用,类名自定义(示例为ShapeWidget),基类选择QWidget
2.为了使不规则窗体能够通过鼠标随意拖拽,在类中重定义了鼠标事件 mousePressEvent() 、mouseMoveEvent() 以及绘制函数paintEvent()
protected:
void mousePressEvent(QMouseEvent *);
void mouseMoveEvent(QMouseEvent *);
void paintEvent(QPaintEvent *);
3.在.cpp中,添加如下代码
QPixmap pix;
pix.load("16.png", 0, Qt::AvoidDither | Qt::ThresholdDither | Qt::ThresholdAlphaDither);
resize(pix.size());
setMask(QBitmap(pix.mask()));
先新建一个QPixmap对象,
再调用 QPixmap 的 load() 函数为QPixmap填入图像值,
接着调用 resize() 重设窗体尺寸为所读图片大小
最后调用 setMask() 为调用它的空间增加一个遮罩,遮住所选区域以外的部分,使之看起来透明。此处调用QPixmap的 mask()