QT中如何实现在图片上画出矩形?

QT中如何实现在图片上画出矩形?,第1张

在程序的目录下建立一个imageformats文件夹

然后把C:\Qt\2010.05\qt\plugins\imageformats下的用到的库拷贝过去如果图片有gif的就拷贝gif的dll文件,如果有jpeg的就拷贝jpeg的dll库文件

QT中QPainter的使用及矩形、圆形等常见图形的画法

#include<QApplication>

#include <QWidget> 

#include <QPainter> 

class MyMainWindow:public QWidget

public:

MyMainWindow(QWidget *parent = 0)

private:

void paintEvent(QPaintEvent*)

QPainter *paint

}

void MyMainWindow::paintEvent(QPaintEvent*)

//paintEvent函数由系统自动调用,用不着我们人为的去调用。

{

paint=new QPainter

paint->begin(this)

paint->setPen(QPen(Qt::blue,4,Qt::DashLine))//设置画笔形式

paint->setBrush(QBrush(Qt::red,Qt::SolidPattern))//设置画刷形式

paint->drawRect(20,20,160,160)

paint->end()

}

MyMainWindow::MyMainWindow(QWidget*parent):QWidget(parent)

{

setGeometry(100,100,200,200)

}

int main(int argc,char**argv)

{

QApplication a(argc,argv)

MyMainWindow w

w.show()

return a.exec()

}

输出结果:

绘制圆和椭圆

核心代码:

paint->setPen(QPen(Qt::blue,4,Qt::SolidLine))

paint->drawEllipse(20,20,210,160)

第1,2个参数分别表示圆/椭圆距左上角的像素数。第3,4个参数表示圆/椭圆的宽度和高度。更加确切地表述,这个圆或椭圆是在矩形中,这个矩形的左上角的顶点在坐标轴中的位置为(20,20),这个圆或椭圆的中心为这个矩形的中心,以下的都相似!!!

绘制圆角矩形

核心代码:

paint->setPen(QPen(Qt::blue,4,Qt::SolidLine))

paint->drawRoundRect(20,20,210,160,50,50)

最后两个参数决定角的圆度。它可以为0到99之间的任意值(99代表最圆)。

绘制扇形图

核心代码:

paint->setPen(QPen(Qt::green,4,Qt::SolidLine))

paint->drawPie(20,20,210,160,0,500)

前四个参数定义圆(与drawEllipse()函数相同)。后两个参数定义圆的样式。0为起始角度(实际单位为1/16度),500为扇形所展开的角度(单位也为1/16度)。

绘制弦

核心代码:

paint->setPen(QPen(Qt::green,4,Qt::SolidLine))

paint->drawChord(20,20,210,160,500,1000)

drawChord()函数与drawPie()函数的参数完全相同。

绘制圆弧

核心代码:

paint->setPen(QPen(Qt::green,4,Qt::SolidLine))

paint->drawArc(20,20,210,160,500,1000)

drawArc()函数与drawPie()函数的参数完全相同。

绘制贝塞尔曲线

核心代码:

paint->setPen(QPen(Qt::green,4,Qt::SolidLine))

paint->drawQuadBezier(QPointArray(QRect(20,20,210,160)))

传递给该函数的唯一一个参数表示一个矩形,在其中创建贝塞尔曲线(其他参数为缺省参数,可以省略)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11835966.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存