在上一次介绍中已经实现了自定义控件,并把Widget 放入了主界面中,画了一个圆,具体可参考“QT 自定义窗口”

下面我们介绍一下如何设置画笔颜色和所画图形的填充颜色。

画笔颜色:

void CircleWidget::paintEvent(QPaintEvent *event)
{
      QPainter painter(this);
      //painter.setBrush(QBrush(QColor(0x00,0xFF,0x00)));
      //painter.drawEllipse(QPoint(100,100),100,100);
      QColor green(0,0xFF,0);//设置颜色
      QPen pen(green);//定义画笔
      painter.setPen(pen);
      painter.drawRect(100,100,50,30);

}

也可以设置线的宽度和样式

void CircleWidget::paintEvent(QPaintEvent *event)
{
        QPainter painter(this);
         //painter.setBrush(QBrush(QColor(0x00,0xFF,0x00)));
         //painter.drawEllipse(QPoint(100,100),100,100);
         QColor green(0,0xFF,0);//设置颜色
         QPen pen(green);//定义画笔
         pen.setWidth(5);//
         pen.setStyle(Qt::DashDotDotLine);
         painter.setPen(pen);
         painter.drawRect(100,100,50,30);


}

填充颜色:

void CircleWidget::paintEvent(QPaintEvent *event)
{
      QPainter painter(this);
      QBrush brush(QColor(0x00,0xFF,0x00));
      painter.setBrush(brush);
      //painter.drawEllipse(QPoint(100,100),100,100);

      painter.drawRect(100,100,50,30);


}

如何更改画布颜色,可以通过上面的方式,先获取画布的长和宽,然后画一个长方形,再将长方形颜色添加为想要的颜色

void CircleWidget::paintEvent(QPaintEvent *event)
{
        QPainter painter(this);
        int width=this->width();
        int height=this->height();
         QBrush brush(QColor(0xFF,0xFF,0xFF));
         painter.setBrush(brush);

         painter.drawRect(0,0,width,height);


}

posted on 2018-11-03 11:47  未完代码  阅读(3264)  评论(0编辑  收藏  举报