Qt 使用QPainter 绘图

简单粗暴 直接上代码

//头文件
#ifndef PAINTRECT_H
#define PAINTRECT_H

#include <QtWidgets/QWidget>
#include "ui_paintrect.h"

class PaintRect : public QWidget
{
	Q_OBJECT

public:
	PaintRect(QWidget *parent = 0);
	~PaintRect();
	void myDraw(QLabel* label);
protected:
	bool eventFilter(QObject *watched, QEvent *event);

private:
	Ui::PaintRectClass ui;
};

#endif // PAINTRECT_H



//源文件
#include "paintrect.h"
#include <QImage>
#include <QLabel>
#include <QMessageBox>
#include <QFileDialog>
#include <QPainter>

PaintRect::PaintRect(QWidget *parent)
	: QWidget(parent)
{
	ui.setupUi(this);
	ui.label->installEventFilter(this);
	QImage *img = new QImage;
	QString fileName = "C:/Users/10167/Desktop/blue.jpg";
	//QString fileName  = QFileDialog::getOpenFileName(this, "打开图片", "C:/", "Images(*.png *.bmp *.jpg)");
	if (!fileName.isEmpty())
	{
		ui.label->setStyleSheet(QStringLiteral("image:url(%1)").arg(fileName));
	}

}

PaintRect::~PaintRect()
{

}

void PaintRect::myDraw(QLabel* label)
{
	QPainter painter(label);
	QPen pen;
	pen.setWidth(4);
	pen.setColor(Qt::green);
	painter.setPen(pen);
	painter.drawRect(245, 130, 200, 200);
}

bool PaintRect::eventFilter(QObject *watched, QEvent *event)
{
	if (watched == ui.label && event->type() == QEvent::Paint)
	{
		myDraw(ui.label);
		return true;
	}
	else
		return false;
}


//主函数

#include "paintrect.h"
#include <QtWidgets/QApplication>

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);
	PaintRect w;
	w.show();
	return a.exec();
}

//ui文件就是一个QLabel~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值