一杯清酒邀明月
天下本无事,庸人扰之而烦耳。
 1 #include<QApplication>
 2 #include <QWidget>
 3 #include <QPainter>
 4 class MyMainWindow:public QWidget
 5 {
 6 public:
 7  MyMainWindow(QWidget *parent = 0);
 8  private:
 9  void paintEvent(QPaintEvent*);
10  QPainter *paint;
11 };
12 
13 
14 void MyMainWindow::paintEvent(QPaintEvent*)
15 
16 //paintEvent函数由系统自动调用,用不着我们人为的去调用。
17 {
18  paint=new QPainter;
19  paint->begin(this);
20  paint->setPen(QPen(Qt::blue,4,Qt::DashLine));//设置画笔形式 
21  paint->setBrush(QBrush(Qt::red,Qt::SolidPattern));//设置画刷形式 
22  paint->drawRect(20,20,160,160);
23  paint->end();
24 }
25 
26 
27 MyMainWindow::MyMainWindow(QWidget*parent):QWidget(parent)
28 {
29  setGeometry(100,100,200,200);
30 }
31 
32 
33 int main(int argc,char**argv)
34 {
35  QApplication a(argc,argv);
36  MyMainWindow w;
37  w.show();
38  return a.exec();
39 }
 
绘制圆和椭圆
核心代码:
1 paint->setPen(QPen(Qt::blue,4,Qt::SolidLine));
2 paint->drawEllipse(20,20,210,160);
第1,2个参数分别表示圆/椭圆距左上角的像素数。第3,4个参数表示圆/椭圆的宽度和高度。更加确切地表述,这个圆或椭圆是在矩形中,这个矩形的左上角的顶点在坐标轴中的位置为(20,20),这个圆或椭圆的中心为这个矩形的中心,以下的都相似!!!

绘制圆角矩形
核心代码:
1 paint->setPen(QPen(Qt::blue,4,Qt::SolidLine));
2 paint->drawRoundRect(20,20,210,160,50,50);
最后两个参数决定角的圆度。它可以为0到99之间的任意值(99代表最圆)。

绘制扇形图
核心代码:
1 paint->setPen(QPen(Qt::green,4,Qt::SolidLine));
2 paint->drawPie(20,20,210,160,0,500);
前四个参数定义圆(与drawEllipse()函数相同)。后两个参数定义圆的样式。0为起始角度(实际单位为1/16度),500为扇形所展开的角度(单位也为1/16度)。

绘制弦
核心代码:
1 paint->setPen(QPen(Qt::green,4,Qt::SolidLine));
2 paint->drawChord(20,20,210,160,500,1000);
drawChord()函数与drawPie()函数的参数完全相同。

绘制圆弧
核心代码:
1 paint->setPen(QPen(Qt::green,4,Qt::SolidLine));
2 paint->drawArc(20,20,210,160,500,1000);
drawArc()函数与drawPie()函数的参数完全相同。

绘制贝塞尔曲线
核心代码:
1 paint->setPen(QPen(Qt::green,4,Qt::SolidLine));
2 paint->drawQuadBezier(QPointArray(QRect(20,20,210,160)));
传递给该函数的唯一一个参数表示一个矩形,在其中创建贝塞尔曲线(其他参数为缺省参数,可以省略)。
posted on 2021-01-18 09:13  一杯清酒邀明月  阅读(4404)  评论(0编辑  收藏  举报

/* 看板娘 */