0
点赞
收藏
分享

微信扫一扫

主流开发语言与环境介绍

悲催博士僧 03-11 19:30 阅读 3

重点:

1.QPainter在QWidget窗口的paintEvent中使用。

2.QPainter通常涉及到设置画笔、设置画刷、绘图(QPen、QBrush、drawxx)三个流程。

class Widget : public QWidget
{
    Q_OBJECT


protected:
    void    paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private:
    Ui::Widget *ui;
};


oid Widget::paintEvent(QPaintEvent *event)
{
   QPainter    painter(this);  //创建QPainter对象
   painter.setRenderHint(QPainter::Antialiasing);
   painter.setRenderHint(QPainter::TextAntialiasing);
   
   int W=this->width();    //绘图区宽度
   int H=this->height();   //绘图区高度
   QRect   rect(W/4,H/4,W/2,H/2);  //中间区域矩形框
   
   //设置画笔
   QPen    pen;
   pen.setWidth(3);        //线宽
   pen.setColor(Qt::red);  //划线颜色
   pen.setStyle(Qt::SolidLine);    //线的样式,实线、虚线等
   pen.setCapStyle(Qt::FlatCap);   //线端点样式
   pen.setJoinStyle(Qt::BevelJoin);    //线的连接点样式
   painter.setPen(pen);
   
   //设置画刷
   QBrush  brush;
   brush.setColor(Qt::yellow); //画刷颜色
   brush.setStyle(Qt::SolidPattern); //画刷填充样式
   painter.setBrush(brush);
   
   //绘图
   painter.drawRect(rect);     //填充定义的渐变区域
   
    event->accept();
}

其中QPen设计三种方式:

 其中QBrush主要函数有:

 画刷的样式内容如下:

 其中材质(setTexture)的填充方法如下:

   //设置画刷
    QPixmap texturePixmap(":images/images/texture.jpg");
    QBrush  brush;
    brush.setStyle(Qt::TexturePattern);     //画刷填充样式
    brush.setTexture(texturePixmap);        //设置材质图片
    painter.setBrush(brush);

继承画刷的子类有三种,主要是渐变填充效果(具体设置看代码的构造使用方法)

 最后绘图 painter.drawRect(rect);   则包含多种绘制的方式有drawPoint(),drawLine(),drawArc()等等。

举报

相关推荐

0 条评论