Qt提供了一个QPainter来画图,可以用来绘制矢量图,也可以用来装载图片。今天实现的是一个给照片加边框的功能,为了练习,将PicFrame构造成一个继承自QWidget的自定义Widget。这时QPainter不能直接在自己定义的Widget中使用,而需要在paintEvent(QPaintEvent *event)中实现,否则会有类似于“QPainter::begin: Paint
device returned engine == 0, type: 1”的错误消息出现。
void PicFrame::paintEvent(QPaintEvent *event) { QPainter painter(this); QRect rect(0, 0, image.width()*(1+frameSize), image.height()*(1+frameSize)); painter.fillRect(rect,color); QPoint point(frameSize*image.width()/2, frameSize*image.height()/2); painter.drawImage(point, image); }
=============================心情分割线=============================
今天NordSec2010开始,又见到了很多老朋友。再聚首总是有很多要交流的,大家都在为毕设发愁,都在为前途迷茫。从来没有像现在这样反感学术,当初不去美国的决定似乎是对的。
Leave a Comment