• 32.QT绘图


    • widget.h
       1 #ifndef WIDGET_H
       2 #define WIDGET_H
       3 
       4 #include <QWidget>
       5 #include <QPainter>
       6 #include <QPen>
       7 #include <QEvent>
       8 
       9 namespace Ui {
      10 class Widget;
      11 }
      12 
      13 class Widget : public QWidget
      14 {
      15     Q_OBJECT
      16 
      17 public:
      18     explicit Widget(QWidget *parent = 0);
      19     ~Widget();
      20     void paintEvent(QPaintEvent *e);
      21     QPainter *painter;
      22 
      23 private:
      24     Ui::Widget *ui;
      25 };
      26 
      27 #endif // WIDGET_H
    • widget.cpp
       1 #include "widget.h"
       2 #include "ui_widget.h"
       3 
       4 Widget::Widget(QWidget *parent) :
       5     QWidget(parent),
       6     ui(new Ui::Widget)
       7 {
       8     ui->setupUi(this);
       9     setGeometry(120,120,600,600);
      10 }
      11 
      12 Widget::~Widget()
      13 {
      14     delete ui;
      15 }
      16 
      17 void Widget::paintEvent(QPaintEvent *e)
      18 {
      19     painter = new QPainter;
      20     painter->begin(this);
      21     painter->setPen(QPen(Qt::blue,10,Qt::DashDotLine));
      22 
      23     //画刷
      24     painter->setBrush(QBrush(Qt::red,Qt::SolidPattern));
      25     //画矩形
      26     //painter->drawRect(20,20,180,180);
      27     //画椭圆
      28     //painter->drawEllipse(20,20,190,160);
      29     //画点
      30     //painter->drawPoint(100,100);
      31     //画曲线
      32    // painter->drawArc(20,20,210,160,500,1000);
      33 
      34 
      35     /*
      36         case Line:                                             //直线
      37             p.drawLine(rect.topLeft(),rect.bottomRight());     break;
      38         case Rectangle:                                        //长方形
      39             p.drawRect(rect);    break;
      40         case RoundRect:                                        //圆角方形
      41             p.drawRoundRect(rect);     break;
      42         case Ellipse:                                          //椭圆形
      43             p.drawEllipse(rect);     break;
      44         case Polygon:                                          //多边形
      45             p.drawPolygon(points,4);     break;
      46         case Polyline:                                      //多边线
      47             p.drawPolyline(points,4);     break;
      48         case Points:                                          //点
      49             p.drawPoints(points,4);     break;
      50         case Arc:                                              //弧
      51             p.drawArc(rect,startAngle,spanAngle);     break;
      52         case Path:                                             //路径
      53             p.drawPath(path);     break;
      54         case Text:                                            //文字
      55             p.drawText(rect,Qt::AlignCenter,tr("Hello Qt!"));    break;
      56         case Pixmap:                                          //图片
      57             p.drawPixmap(150,150,QPixmap("butterfly.png"));     break;
      58         default:     break;
      59 
      60 
      61 
      62 
      63        painter->drawLine(QPoint(30,30),QPoint(60,180));
      64        painter->drawText(this->rect(),Qt::AlignCenter,tr("Hello Qthello haihua!"));
      65        painter->drawPixmap(150,150,QPixmap("1.png"));
      66     */
      67 
      68     //画线
      69     //painter->drawLine(QPoint(30,30),QPoint(60,180));
      70     //painter->drawText(this->rect(),Qt::AlignCenter,tr("Hello"));
      71     //画图
      72     painter->drawPixmap(0,0,QPixmap("1.png"));
      73     painter->end();
      74 }
  • 相关阅读:
    微信公众平台接口测试账号申请
    Windows平台下tomcat+java的web程序持续占cpu问题调试
    mysql存储过程基础
    Mysql权限控制
    MySQL开启federated引擎实现数据库表映射
    JAVA中Set集合--HashSet的使用
    在js中嵌套java代码
    MySql计算两个日期的时间差函数
    关于easyui combobox下拉框实现多选框的实现
    利用excel办公软件快速拼凑sql语句
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8794730.html
Copyright © 2020-2023  润新知