怎样用qt可视化中用类加入一个正方形

 我来答
lilipat
高粉答主

2019-01-11 · 每个回答都超有意思的
知道大有可为答主
回答量:3万
采纳率:94%
帮助的人:5366万
展开全部

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)));

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

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式