QTransform(图形平移旋转剪切变换)

《Qt实战一二三》 @博主一去丶二三里

https://blog.csdn.net/liang19890820/article/details/51212890

QPainter介绍:

QPainter 一般在部件的绘图事件 paintEvent() 中进行绘制,首先创建 QPainter 对象,然后进行图形的绘制,最后记得销毁 QPainter 对象。当窗口程序需要升级或者重新绘制时,调用此成员函数。使用 repaint()和 update() 后,调用函数 paintEvent()。

error: no 'void MainWindow::paintEvent(QPaintEvent*)' member function declared in class 'MainWindow'
 void MainWindow::paintEvent(QPaintEvent *event)

在mainwindow.h中加上这行
protected:   
 virtual void paintEvent(QPaintEvent *event);

其他不变

//显示  painter.drawPixmap……

QTransform(图形平移旋转剪切变换)_第1张图片

// 平移    
transform.translate(120,30); //  将坐标原点由 (0, 0) 变为 (120, 30)
painter.setTransform(transform);

QTransform(图形平移旋转剪切变换)_第2张图片

//旋转

QTransform(图形平移旋转剪切变换)_第3张图片   QTransform(图形平移旋转剪切变换)_第4张图片

transform.rotate(45,Qt::XAxis);     transform.rotate(45,Qt::YAxis);

//平移+旋转

transform.translate(120,30);
transform.rotate(45,Qt::ZAxis);

QTransform(图形平移旋转剪切变换)_第5张图片

//横纵向剪切变形

transform.shear(0.6,0.3);

QTransform(图形平移旋转剪切变换)_第6张图片

总结一下:以后在mainwindow.cpp中写的函数

void xx()

{

}

一定是要在mainwindow.h文件相应类中声明的!

你可能感兴趣的:(Qt,QTransform)