main.cpp
#include "polygongraph.h"
#include <QApplication>int main(int argc, char *argv[])
{
QApplication a(argc, argv);
polygongraph w;
w.show();
return a.exec();
}
polygongraph.h
#ifndef POLYGONGRAPH_H
#define POLYGONGRAPH_H#include <QWidget>
class polygongraph : public QWidget
{
Q_OBJECT
public:
explicit polygongraph(QWidget *parent = 0);
~polygongraph();
protected:
//在保护成员中,重写paintEvent
void paintEvent(QPaintEvent* e);
};
#endif // POLYGONGRAPH_H
polygongraph.cpp
#include <QtMath>
#include <QPainter>
#include "polygongraph.h"
polygongraph::polygongraph(QWidget *parent) :
QWidget(parent)
{
}
polygongraph::~polygongraph()
{
}
void polygongraph::paintEvent(QPaintEvent *e)
{QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.setBrush((QBrush(Qt::black,Qt::SolidPattern)));
painter.drawEllipse(0,0,200,200);//画圆
painter.setPen((QPen(Qt::white,Qt::SolidPattern)));
painter.setBrush(QBrush(Qt::white,Qt::SolidPattern));
painter.drawPie(50,50,100,100,0,90*16);//画圆
painter.setPen((QPen(Qt::blue,Qt::SolidPattern)));
painter.setBrush(QBrush(Qt::blue,Qt::SolidPattern));
painter.drawPie(50,50,100,100,90*16,90*16);//画圆
painter.setPen((QPen(Qt::white,Qt::SolidPattern)));
painter.setBrush(QBrush(Qt::white,Qt::SolidPattern));
painter.drawPie(50,50,100,100,180*16,90*16);//画圆
painter.setPen((QPen(Qt::blue,Qt::SolidPattern)));
painter.setBrush(QBrush(Qt::blue,Qt::SolidPattern));
painter.drawPie(50,50,100,100,270*16,90*16);//画圆
QFont font;
font.setPointSize(30);//字体大小设置为10
painter.setFont(font);
painter.setPen((QPen(Qt::white,Qt::SolidPattern)));
painter.setBrush(QBrush(Qt::white,Qt::SolidPattern));
painter.save();
painter.translate(100, 100);
painter.drawText(-20, -95, 40, 40,Qt::AlignHCenter | Qt::AlignTop,QString('M'));
painter.rotate(-45);
painter.drawText(-20, -95, 40, 40,Qt::AlignHCenter | Qt::AlignTop,QString('B'));
painter.rotate(90);
painter.drawText(-20, -95, 40, 40,Qt::AlignHCenter | Qt::AlignTop,QString('W'));
painter.restore();
}