1. 程式人生 > >qt中窗口繪制——圖片的繪制

qt中窗口繪制——圖片的繪制

繪制 相對 eve —圖 ram painter .cpp () png

在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); }

結果:

技術分享圖片

qt中窗口繪制——圖片的繪制