zoukankan      html  css  js  c++  java
  • 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);
    
    
    }

    结果:

  • 相关阅读:
    .ashx
    svn设置过滤内容
    .NET开发人员应该下载的十个必备工具(1)
    C#中操作XML (节点添加,修改,删除完整版)
    NVelocity模板引擎的注意事项
    什么是好的程序员?
    SQLSERVER2005登录时出错
    240多个jQuery插件(转)
    自己搭建svn
    一元三次方程求解
  • 原文地址:https://www.cnblogs.com/fuhang/p/9900672.html
Copyright © 2011-2022 走看看