qt中窗口绘制——图片的绘制

Posted fuhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt中窗口绘制——图片的绘制相关的知识,希望对你有一定的参考价值。

在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中窗口绘制——图片的绘制的主要内容,如果未能解决你的问题,请参考以下文章

qt编程label显示图片,如何在图片上绘制相应图形呢?

QT软件开发: 点击鼠标在窗口里绘制矩形(窗口透明背景)

QT软件开发: QWidget窗口绘制圆角

Qt paintEvent事件 显示图片文字

qt在tableview中绘制图片

使用 Qt 设计器绘制 Qt