Qt:QtPainter设置画刷

墨蓝 2022-10-24 11:45 157阅读 0赞

/*
* 1、新建QT GUI, 基类选择QWidget,取消“创建界面”
* 2、添加资源文件qtlogn:在项目之下添加一个“resources”文件,里面存放”qtblog.png”,然后
* 文件—>新建文件/项目—->Qt—-> Qt Resource File
* 3、在widget.h中添加#include 和重写绘画事件定义:
* protected:
void paintEvent(QPaintEvent *event);
* 4、在widget.cpp中添加重绘事件

*/

1、QRadialGradient

  1. void Widget::paintEvent(QPaintEvent *event)
  2. {
  3. QPainter painter;
  4. painter.begin(this);
  5. QRadialGradient gradient(50, 50, 50, 50, 50);
  6. gradient.setColorAt(0, QColor::fromRgbF(0, 1, 0, 1));
  7. gradient.setColorAt(1, QColor::fromRgbF(0, 0, 0, 0));
  8. QBrush brush(gradient);
  9. painter.setBrush(brush);
  10. painter.drawRect(0, 0, 100, 100);
  11. painter.end();
  12. }

28d292d63f92ef5b677b4d52b9c921e3338.jpg

2、设置画刷为pixmap文件

  1. void Widget::paintEvent(QPaintEvent *event)
  2. {
  3. QPainter painter;
  4. painter.begin(this);
  5. QPixmap pixmap("F:\\MyCode\\brush\\resources\\qtblog.png");
  6. int w = pixmap.width();
  7. int h = pixmap.height();
  8. pixmap.scaled(w, h, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
  9. QBrush brush(pixmap); //设置画刷为pixmap文件:也就是用pixmap图形填充矩形
  10. painter.setBrush(brush);
  11. painter.drawRect(0, 0, w, h);
  12. painter.end();
  13. }

e980d0b68014109335683d54162e1539ab0.jpg

3、设置画刷的填充颜色

  1. void Widget::paintEvent(QPaintEvent *event)
  2. {
  3. QPainter painter;
  4. painter.begin(this);
  5. painter.setPen(Qt::blue);
  6. painter.setBrush(QBrush(Qt::green, Qt::Dense3Pattern));
  7. painter.drawEllipse(10, 10, 100,100);
  8. painter.setBrush(Qt::NoBrush);
  9. painter.drawEllipse(80, 10, 100, 100);
  10. painter.end();
  11. }

a13d0b144765b9f1306cf39e7bd11fe9049.jpg

资源文件

qtblog.png

发表评论

表情:
评论列表 (有 0 条评论,157人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Qt:QtPainter设置

    /\ \ 1、新建QT GUI, 基类选择QWidget,取消“创建界面” \ 2、添加资源文件qtlogn:在项目之下添加一个“resources”文件,里面存放"q

    相关 C++ MFCCBrush类

    画刷其实是一个像素大小为8*8的位图,用多个相同的位图对封闭图形的内部进行填充。 MFC的CBrush类封装了画刷对象,创建画刷时,首先定义一个画刷对象,然后调用Crea...