QT中利用QPainter画图操作带图详解(二)

环境:QT5.5.1+MinGW+windows8.1

此篇主要是讲如何在其他控件上画图

有关画图的其他常用的api都在我上篇里面有记录,主要是供我自己记忆哈哈哈哈。所以东西都是我自己验证可以使用后才截屏上来的,放心使用~

为了方便整个界面的布局,我选择将图案画在控件widget中。

方式一:重写paintEvent()函数

paintEvent()画的图案只能在其所在的类中显示,所以新建一个类,在新类里面画好之后,实例化一个新类的对象,并将其添加到子控件上。这就是整个思路,接下来就贴图显示操作步骤。

1.创建项目。

我选择的基类是mainwindows。

2.添加新的类。

我给新类取的名字是PainterGragh,这个名字自由取,无限制,尽量直观简单。在paintergragh.h中添加了绘图事件的声明,代码如下:

#ifndef PAINTERGRAGH_H
#define PAINTERGRAGH_H

#include <QWidget>

class PainterGragh : public QWidget
{
   
    Q_OBJECT
public:
    explicit PainterGragh(QWidget *parent = 0);

    void paintEvent(QPaintEvent *);

signals:

public slots:
};

#endif // PAINTERGRAGH_H

另外,此类继承的类要与你添加图案的控件类要一致。详细点说:下图是我要添加图案的控件,它的类是QWidget,新类PainterGragh继承的类是QWidget,二者需一致。

  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在QT Creator绘制多张图片,可以使用QPainter类进行绘制。下面是一个简单的示例,演示如何在窗口绘制多张图片。 首先,在QT Creator创建一个新的窗口应用程序。然后打开mainwindow.cpp文件,在构造函数添加以下代码: ``` MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { //设置窗口大小 setFixedSize(800, 600); } void MainWindow::paintEvent(QPaintEvent *event) { QPainter painter(this); //绘制第一张图片 QPixmap pixmap1(":/images/image1.png"); painter.drawPixmap(0, 0, pixmap1.scaled(200, 200, Qt::KeepAspectRatio)); //绘制张图片 QPixmap pixmap2(":/images/image2.png"); painter.drawPixmap(250, 0, pixmap2.scaled(200, 200, Qt::KeepAspectRatio)); //绘制第三张图片 QPixmap pixmap3(":/images/image3.png"); painter.drawPixmap(500, 0, pixmap3.scaled(200, 200, Qt::KeepAspectRatio)); } ``` 在这个示例,我们首先设置了窗口的大小。然后在paintEvent()函数,我们创建了一个QPainter对象,并使用drawPixmap()函数绘制了三张图片。每一张图片都使用相对于窗口左上角的坐标进行定位,并使用scaled()函数进行缩放,以使其适合在窗口显示。 需要注意的是,这个示例假设有三张名为“image1.png”、“image2.png”和“image3.png”的图片文件位于项目资源文件的“images”文件夹。如果您的项目的图片文件具有不同的名称或位置,请相应地修改示例的文件路径。 最后,在QT Creator编译并运行应用程序,您将看到在窗口绘制了三张图片。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值