QT基础 :轻松学会如何绘图

在QT中,经常需要我们绘图制作图形化界面,本文将用最简洁的方法介绍如何绘图。

一.基础知识

 

想要了解画图,首先我们要了解QT中的两个类,一个是QPixmap,一个是QPainter(在官方文档中提供了详细的介绍)

QPixmap属于paint device(Qwidget也属于paint device),它主要的作用是用来加载和显示图片的,我们可以把它理解成一块画板,我们可以把图片加载在上面

而QPainter是画家类,有了它我们便可以在画板上作画。

二.代码演示

首先,创建一个名称为paintertest的Qt默认的Widget程序。

接着选择Qt Resource File 把我们挑选好的图片添加进来

 

确保图片已经全部放在文件夹中

将我们选择好的文件都放入res文件夹中

现在所有的图片资源都添加了进来

 在Widget中增加paintEvent虚函数

void Widget::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);//设置画家
    QPixmap pix;//使用pixmap来加载我们的资源图片
    pix.load(":/new/prefix1/picture1.jpeg");
    painter.drawPixmap(0,0,this->width(),this->height(),pix);//表示在widget的(0,0)位置绘制一张宽高和
    //widget相等的图

}

 paintEvent函数内部实现

我们就给这个widget添加了一个背景

三.其他插入图片的方式

如果我们还想在其他地方添加图片呢?比如在一个button或者Label上加一幅图

我们先通过ui放置一个Label

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    QPixmap pic;
    QSize size;//画框大小

    pic.load(":/new/prefix1/picture2.jpeg");

    //设置图片显示尺寸
    size.setHeight(ui->label->height());
    size.setWidth(ui->label->width());

    //照片处理
    pic=pic.scaled(size,Qt::IgnoreAspectRatio);
    //显示
    ui->label->setPixmap(pic);

}

 接着我们把这张图片的大小设置成与Label一样的。(scaled函数是用来裁剪图片大小的)

最后通过setPixmap将这张图片在Label上显示出来

 

 

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值