zoukankan      html  css  js  c++  java
  • QT_圆_直线_三角t

    MyImgTest.h:

    #ifndef MYIMGTEST_H
    #define MYIMGTEST_H


    #include <QWidget>

    class MyImgTest : public QWidget
    {
    //Q_OBJECT
    public:
    MyImgTest(QWidget* parent = 0);
    ~MyImgTest();
    void paintEvent(QPaintEvent *);
    };

    #endif

    MyImgTest.cpp:

    #include "MyImgTest.h"
    #include <QPainter>
    //#include <QRect>
    //#include <QPointF>
    //#include <QLineF>

    MyImgTest::MyImgTest(QWidget* parent) : QWidget(parent)
    {
    setFixedSize(360,360); //
    固定大小
    setWindowTitle("Hello DevDiv!");
    }

    MyImgTest::~MyImgTest()
    {

    }

    void MyImgTest::paintEvent(QPaintEvent *)
    {
    //
    画一条直线
    QPainter painter(this); //
    创建QPainter一个对象
    QPen pen;

    //pen.setStyle(Qt::DashLine);
    pen.setColor(Qt::red); //
    设置画笔为黄色
    painter.setPen(pen); //
    设置画笔
    painter.drawLine(rect().topLeft(), rect().bottomRight());

    // 画一个空心矩形
    pen.setColor(Qt::darkRed);
    painter.setPen(pen);
    painter.drawRect(1, 1, 100, 100); //painter.drawRect(QRect(1, 1, 100, 100));

    //
    画一个实心矩形
    QBrush bruch(Qt::FDiagPattern); //
    画刷
    painter.setBrush(bruch); //
    设置画刷
    painter.drawRect(QRect(105, 1, 100, 100));

    //
    画一个多点线
    pen.setColor(Qt::black);
    painter.setPen(pen);
    bruch.setStyle(Qt::NoBrush); //
    将画刷设置成null//fow what
    painter.setBrush(bruch);
    static const QPointF points[4] = {QPointF(210.0, 1), QPointF(220.0, 50.3), QPointF(300, 100.4), QPointF(260.4, 120.0)};
    painter.drawPolyline(points, 4);

    //
    画多个点
    QPointF pointf[10];
    for (int i=0; i<10; ++i)
    {
    pointf[i].setX(2.0+i*10.0);
    pointf[i].setY(130.0);
    }
    painter.drawPoints(pointf, 10);

    //
    画多条线
    QLineF linef[5];
    for (int j=0; j<5; ++j)
    {
    linef[j].setP1(QPointF(110.9+j*10, 120.0));
    linef[j].setP2(QPointF(120.8+j*12, 200.0));
    }
    painter.drawLines(linef, 5);

    //
    画一个多边形
    QPolygonF polygon;
    polygon << QPointF(200.0, 120.0) << QPointF(230.0, 130.0) << QPointF(260.0, 180.0) << QPointF(200.0, 200.0);
    bruch.setStyle(Qt::CrossPattern);
    painter.setBrush(bruch);
    painter.drawPolygon(polygon, Qt::WindingFill);

    //
    画一个圆角矩形
    QRectF rectangle(290.0, 110.0, 50, 50);
    bruch.setStyle(Qt::SolidPattern);
    painter.setBrush(bruch);
    painter.drawRoundedRect(rectangle, 20.0, 15.0);

    //
    画一个QString
    painter.drawText(50, 300, "Hello DevDiv!");

    }
    main.cpp

    #include <QApplication>
    #include "MyImgTest.h"
    int main(int argc,char *argv[])
    {
    QApplication app(argc,argv);
    MyImgTest* widget = new MyImgTest();
    widget->show();
    return app.exec();
    }
    操作步骤:

    1.qmake-qt4 -project

    2.qmake-qt4


  • 相关阅读:
    RabbitMQ消息队列
    集群概念
    重新学习CSS,认识CSS3中的属性
    计算机网络中,路由器和交换机的区别
    微信小程序中,如何点击链接跳转到外部网页
    微信小程序中,如何实现显示,隐藏密码的功能
    Vue 中引入echarts
    解决Ubuntu(linux)系统中PHP的curl函数无法使用的问题
    数据通信的基本知识
    计算机网络的性能
  • 原文地址:https://www.cnblogs.com/cainiaoaixuexi/p/3171314.html
Copyright © 2011-2022 走看看