当前位置: 首页 > news >正文

石家庄网站搭建外链火

石家庄网站搭建,外链火,望野草莓,哪个网站可以做c 的项目效果 学以致用&#xff0c;使用设计模式之建造者模式绘制小猪。 代码 接口&#xff1a;申明绘制的步骤 PigBuilder.h #ifndef PIGBUILDER_H #define PIGBUILDER_H#include <QObject> #include <QPainter>class PigBuilder : public QObject {Q_OBJECT public:ex…

效果

学以致用,使用设计模式之建造者模式绘制小猪。

在这里插入图片描述

代码

接口:申明绘制的步骤
PigBuilder.h

#ifndef PIGBUILDER_H
#define PIGBUILDER_H#include <QObject>
#include <QPainter>class PigBuilder : public QObject
{Q_OBJECT
public:explicit PigBuilder(QObject *parent = nullptr) : QObject(parent){}virtual ~PigBuilder(){}// 绘制身体virtual void drawBody(QPainter &painter) = 0;// 绘制胳膊virtual void drawEars(QPainter &painter) = 0;// 绘制眼睛virtual void drawEyes(QPainter &painter) = 0;// 绘制鼻子virtual void drawNose(QPainter &painter) = 0;// 绘制腿virtual void drawLegs(QPainter &painter) = 0;// 绘制尾巴virtual void drawTail(QPainter &painter) = 0;
};#endif // PIGBUILDER_H

实例化:实例出具体绘制的小猪
SimplePig

#include "pigbuilder.h"class SimplePig : public PigBuilder
{Q_OBJECT
public:explicit SimplePig(QObject *parent = nullptr) : PigBuilder(parent){}virtual ~SimplePig(){}virtual void drawBody(QPainter &painter){painter.setBrush(QBrush(QColor(247, 204, 148)));painter.setPen(Qt::NoPen);painter.drawEllipse(QPointF(250, 250), 100, 120);}virtual void drawEars(QPainter &painter){painter.setBrush(QBrush(QColor(247, 204, 148)));painter.setPen(Qt::NoPen);painter.drawEllipse(QPointF(200, 180), 40, 50);painter.drawEllipse(QPointF(300, 180), 40, 50);}virtual void drawEyes(QPainter &painter){painter.setBrush(QBrush(QColor(255, 255, 255)));painter.setPen(Qt::NoPen);painter.drawEllipse(QPointF(225, 235), 15, 25);painter.drawEllipse(QPointF(275, 235), 15, 25);painter.setBrush(QBrush(QColor(0, 0, 0)));painter.drawEllipse(QPointF(225, 235), 8, 15);painter.drawEllipse(QPointF(275, 235), 8, 15);}virtual void drawNose(QPainter &painter){painter.setBrush(QBrush(QColor(255, 185, 185)));painter.setPen(Qt::NoPen);painter.drawEllipse(QPointF(250, 270), 15, 20);}virtual void drawLegs(QPainter &painter){painter.setBrush(QBrush(QColor(247, 204, 148)));painter.setPen(Qt::NoPen);painter.drawEllipse(QPointF(200, 320), 20, 40);painter.drawEllipse(QPointF(300, 320), 20, 40);}virtual void drawTail(QPainter &painter){painter.setBrush(QBrush(QColor(247, 204, 148)));painter.setPen(Qt::NoPen);painter.drawEllipse(QPointF(320, 250), 20, 40);}
};

建造者:用于创建小猪
PigDirector

class PigDirector : public QObject
{Q_OBJECT
public:explicit PigDirector(QObject *parent = nullptr) : QObject(parent){m_pigBuilder = nullptr;}virtual ~PigDirector(){}void setBuilder(PigBuilder *pigBuilder){m_pigBuilder = pigBuilder;}void draw(QPainter &painter){if (m_pigBuilder != nullptr){m_pigBuilder->drawBody(painter);m_pigBuilder->drawEars(painter);m_pigBuilder->drawEyes(painter);m_pigBuilder->drawNose(painter);m_pigBuilder->drawLegs(painter);m_pigBuilder->drawTail(painter);}}private:PigBuilder *m_pigBuilder;
};

窗体:用于显示
MainWidget

class MainWidget : public QWidget
{Q_OBJECTpublic:MainWidget(QWidget *parent = nullptr): QWidget(parent){setFixedSize(500, 500);// 创建简单的小猪PigBuilder *pigBuilder = new SimplePig();// 设置小猪的构建方式m_pigDirector.setBuilder(pigBuilder);}~MainWidget(){}protected:void paintEvent(QPaintEvent *event) override{Q_UNUSED(event);QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing);// 构建并绘制小猪m_pigDirector.draw(painter);}private:PigDirector m_pigDirector;
};

调用:

#include "mainwindow.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWidget w;w.show();return a.exec();
}
http://www.ds6.com.cn/news/35266.html

相关文章:

  • 山西运城网站建设衡水seo营销
  • 怎么重装wordpress上海谷歌seo推广公司
  • 推广平台文案网站seo推广招聘
  • 购物网站怎么做优化影响seo排名的因素
  • 网站主页与导航栏的设计百度指数查询工具app
  • 做网站如何使用网页插件免费的客户资源怎么找
  • 服务器安装完面板怎么做网站营销推广有哪些形式
  • 山东外贸网站是什么意思hao123网址导航
  • 做党和人民满意的好教师PPT网站免费的网络推广有哪些
  • 自做淘宝客网站seo入门培训
  • 盐亭做网站中国十大企业培训公司
  • 企业seo多少费用网站优化推广平台
  • 设计图库北京seo外包 靠谱
  • 兰州全面解封最新消息抖音seo优化系统招商
  • 机关事业单位网站建设关键词排名怎么快速上去
  • 做外贸网站价格怎样建网站
  • 让别人做网站多久开始注册域名个人接app推广单去哪里接
  • 网站建设需要什么呢seo推广seo技术培训
  • 江门网站建设方案数字营销公司排行榜
  • 一流的聊城做网站公司品牌战略
  • 做网站开发需要的英语水平win7运行速度提高90%
  • 盐城网站建设费用整站优化外包服务
  • 个人网站制作dwseo是做什么工作的
  • 天津网站建设上海优化外包
  • 文创产品设计包括哪些方面南昌seo公司
  • 外贸的网站有哪些广告收益平台
  • 长春站是火车站还是高铁站杭州百度
  • 网站建设制作设计推广优化自己建网站需要多少钱
  • 政府网站建设意义优化系统软件
  • 自己的网站建设华夏思源培训机构官网