找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

Qt画太极图

admin 2020-2-26 17:01 195人围观 Qt相关

易有太极,是生两仪,两仪生四象,四象生八卦。



使用qt画出的太极图如下所示



cpp代码如下:

    #include"MainWindow.h"#include"ui_MainWindow.h"#include<QPaintDevice>#include<QPen>#include<QtGui>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this);this->setWindowTitle("太极图"); setFixedSize(440,440); QTimer *timer= new QTimer; connect(timer,SIGNAL(timeout()),this,SLOT(update())); timer->start(50);
    }
    MainWindow::~MainWindow(){delete ui;}
    void MainWindow::paintEvent(QPaintEvent *){ rot += 1;QPainter painter(this); painter.setWindow(-210,-210,420,420); painter.rotate(rot); painter.setRenderHint(QPainter::Antialiasing,true); painter.setBrush(QBrush(Qt::black,Qt::SolidPattern)); painter.setPen(QPen(Qt::red,0,Qt::NoPen,Qt::RoundCap)); painter.drawPie(-200,-200,400,400,93*16,180*16); painter.setBrush(QBrush(Qt::white,Qt::SolidPattern)); painter.drawPie(-200,-200,400,400,273*16,180*16); painter.drawPie(-100,-200,200,200,93*16,180*16); painter.setBrush(QBrush(Qt::black,Qt::SolidPattern)); painter.drawPie(-100,0,200,200,273*16,180*16); painter.drawEllipse(-20,-130,40,40); painter.setBrush(QBrush(Qt::white,Qt::SolidPattern)); painter.drawEllipse(-20,70,40,40);}

    h头文件如下:

      #ifndef MAINWINDOW_H#define MAINWINDOW_H
      #include<QMainWindow>
      namespace Ui {classMainWindow;}
      classMainWindow :public QMainWindow{ Q_OBJECT
      public:explicitMainWindow(QWidget *parent = nullptr); ~MainWindow();protected:voidpaintEvent(QPaintEvent *);private: Ui::MainWindow *ui;double rot;};
      #endif// MAINWINDOW_H

      可以通过修改参数rot 来控制转动速率。

      painter.setPen(QPen(Qt::black,0,Qt::NoPen,Qt::RoundCap));painter.drawPie(-200,-200,400,400,93*16,180*16);                            //注意这里的

      painter.setBrush(QBrush(Qt::white,Qt::SolidPattern));painter.drawPie(-200,-200,400,400,273*16,180*16);                         

      这里的93度和273度是不能使用90度和270度。那样的话会有一个直线非常影响视觉感受。



      长按识别公众号,点击关注


      ----------------------------------------------------------------------------------------------------------------------
      我们尊重原创,也注重分享,文章来源于微信公众号:最新的研习社,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
      ----------------------------------------------------------------------------------------------------------------------

      鲜花

      握手

      雷人

      路过

      鸡蛋

      yafeilinux和他的朋友们微信公众号二维码

      微信公众号

      专注于Qt嵌入式Linux开发等。扫一扫立即关注。

      Qt开源社区官方QQ群二维码

      QQ交流群

      欢迎加入QQ群大家庭,一起讨论学习!

      我有话说......