/*
* 一、新建QT GUI, 基类选择QWidget,取消“建立界面”
* 二、添加资源文件qtlogn:在项目之下添加一个“resources”文件,里面存放"qtblog.png",而后
* 文件-->新建文件/项目--->Qt---> Qt Resource File
* 三、在widget.h中添加#include <QPainter>和重写绘画事件定义:
* protected:
void paintEvent(QPaintEvent *event);
* 四、在widget.cpp中编写重绘事件
*/this
一、坐标原点移动:3d
void Widget::paintEvent(QPaintEvent *event) { QImage image("F:\\MyCode\\qtblog.png"); QPainter painter(this); //this表示激活画笔 painter.setPen(QPen(Qt::blue, 1, Qt::DashLine)); painter.drawRect(0, 0, 100, 100); QTransform transform; transform.translate(50, 50); //将坐标从当前坐标原点沿着x轴前进50,沿着y轴前进50 painter.setTransform(transform); painter.drawImage(0, 0, image); painter.end(); }
二、坐标系统旋转rotatecode
void Widget::paintEvent(QPaintEvent *event) { QImage image("F:\\MyCode\\qtblog.png"); QPainter painter(this); //this表示激活画笔 painter.setPen(QPen(Qt::blue, 1, Qt::DashLine)); painter.drawRect(0, 0, 100, 100); QTransform transform; transform.translate(50, 50); //坐标沿着x轴前进50,沿着y轴前进50 transform.rotate(45); //默认坐标沿着z轴旋转 // transform.rotate(70); transform.rotate(45,Qt::ZAxis); painter.setTransform(transform); painter.drawImage(0, 0, image); painter.end(); }
void Widget::paintEvent(QPaintEvent *event) { QImage image("F:\\MyCode\\qtblog.png"); QPainter painter(this); //this表示激活画笔 painter.setPen(QPen(Qt::blue, 1, Qt::DashLine)); painter.drawRect(0, 0, 100, 100); QTransform transform; transform.translate(50, 50); //坐标沿着x轴前进50,沿着y轴前进50 transform.rotate(70,Qt::YAxis); painter.setTransform(transform); painter.drawImage(0, 0, image); painter.end(); }
void Widget::paintEvent(QPaintEvent *event) { QImage image("F:\\MyCode\\qtblog.png"); QPainter painter(this); //this表示激活画笔 painter.setPen(QPen(Qt::blue, 1, Qt::DashLine)); painter.drawRect(0, 0, 100, 100); QTransform transform; transform.translate(50, 50); //坐标沿着x轴前进50,沿着y轴前进50 transform.rotate(80,Qt::XAxis); painter.setTransform(transform); //设置当前旋转坐标为画笔坐标 painter.drawImage(0, 0, image); painter.end(); }
三、坐标缩放:从而实现图形缩放orm
void Widget::paintEvent(QPaintEvent *event) { QImage image("F:\\MyCode\\qtblog.png"); QPainter painter(this); //this表示激活画笔 painter.setPen(QPen(Qt::blue, 1, Qt::DashLine)); painter.drawRect(0, 0, 100, 100); QTransform transform; transform.translate(50, 50); transform.rotate(45); transform.scale(0.5, 0.5); //横向和纵向的缩放比例,大于1放大,小于1缩小 painter.setTransform(transform); painter.drawImage(0, 0, image); painter.end(); }
资源blog