qt中視窗繪製——圖片的繪製
阿新 • • 發佈:2018-11-03
在qt 中,QPixmap 用於表示一張圖片,支援png,jpg格式的載入。
QPixmap pm("c:/test.png"); 或者 QPixmap pm; pm.load("c:/test/png");
QT中圖片的路徑分為兩種:
(1)檔案系統中的圖片:使用絕對路徑或者相對路徑。
(2)資源中的檔案:以冒號開頭例如:/Test/source/logo.jpg
繪製的引數:
(1)源矩形
可以繪製圖形的全部,也可以繪製其中的一部分。
QRect source(0,0,ima_width,img_height);
(2)目標矩形
可以填充到全部視窗,也可以只填充一部分
QRect target(0,0,width/2,height/2);
呼叫的函式:
painter.drawPixmap(target,m_picture,source)
circlewidget.h
#ifndef CIRCLAWIDGET_H #define CIRCLAWIDGET_H #include <QFrame> #include<QTimer> #include<QPixmap> class CircleWidget:public QFrame { Q_OBJECT public: CircleWidget(QWidget*parent); ~CircleWidget(); private: void paintEvent(QPaintEvent *event); private: QPixmap m_picture; }; #endif // CIRCLAWIDGET_H
circlewidget.cpp
# include"circlewidget.h" #include<QPainter> CircleWidget::CircleWidget(QWidget *parent):QFrame(parent) { m_picture.load("/home/jun/untitled1/backimage.PNG"); } CircleWidget::~CircleWidget() { } void CircleWidget::paintEvent(QPaintEvent *event) { QPainter painter(this); int width=this->width(); int height=this->height(); QRect target(0,0,width,height); int img_width=m_picture.width(); int img_height=m_picture.height(); QRect source (0,0,img_width,img_height); painter.drawPixmap(target,m_picture,source); }
結果: