转载请注明出处
文章目录
概述绘制图片绘制形状绘制文字
概述
QT使用QPainter进行二维图形绘制,QPainter可以绘制各种图形,例如点、线、矩形、圆、椭圆等,QPainter也支持线性变换,例如平移、旋转缩放等,此外,QPainter也支持一些高级特性,例如反走样等等、像素混合、渐变填充等,在绘制前可以设置画笔、画刷、字体属性来控制绘制效果。
QPainter的使用需要一个“绘图设备”,绘图设备包括但不限于QWidget、QPixmap、QImage等。在定制窗口部件时只需要重新实现paintEvent()函数可以让我们随心所欲的控制窗口的外观、下面介绍使用QPainter绘制图片、形状、文字的方法。
绘制图片
void MyPainter
::paintEvent(QPaintEvent
* ev
)
{
QPainter
painter(this);
painter
.setRenderHint(QPainter
::Antialiasing
, true);
painter
.drawPixmap(rect(),QPixmap("/images.jpg"));
}
绘制形状
void MyPainter
::paintEvent(QPaintEvent
* ev
)
{
QPainter
painter(this);
painter
.setPen(QPen(Qt
::green
, 5, Qt
::SolidLine
, Qt
::RoundCap
));
painter
.drawRect(50,
50,
100,
100);
}
绘制文字
void MyPainter
::paintEvent(QPaintEvent
* ev
)
{
QPainter
painter(this);
QFont font
;
font
.setFamily("Microsoft YaHei");
font
.setPointSize(30);
painter
.setFont(font
);
painter
.drawText(rect(), Qt
::AlignCenter
, "hello world");
}
通过使用不同的绘制效果设置和绘制函数可以实现各式各样的窗口样式,除了窗口部件定制之外,也可以指定其他的绘图设备,例如想在一张图片上进行绘制,可将QPainter的绘图设备指定为QPixmap或者QImage。