Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在qt中绘制带有彩色角的透明矩形?_C++_Qt_Qpainter - Fatal编程技术网

C++ 如何在qt中绘制带有彩色角的透明矩形?

C++ 如何在qt中绘制带有彩色角的透明矩形?,c++,qt,qpainter,C++,Qt,Qpainter,如何在qt中绘制带有彩色角的透明矩形(使用QPaint),如下图所示: 很好,只是对您注释掉的fillRect():如果要填充区域,请先填充,然后再绘制角点。否则,fill-rect将在“内部”一半的线条上绘制。很好,只是对注释掉的fillRect():如果要填充区域,请先填充,然后再绘制角点。否则,fill rect将在直线的“内部”一半上绘制。 void Widget::paintEvent(QPaintEvent *) { draw(10,10,50,50); } void Wi

如何在qt中绘制带有彩色角的透明矩形(使用QPaint),如下图所示:


很好,只是对您注释掉的
fillRect()
:如果要填充区域,请先填充,然后再绘制角点。否则,fill-rect将在“内部”一半的线条上绘制。很好,只是对注释掉的
fillRect()
:如果要填充区域,请先填充,然后再绘制角点。否则,fill rect将在直线的“内部”一半上绘制。
void Widget::paintEvent(QPaintEvent *) {
    draw(10,10,50,50);
}

void Widget::draw(int x,int y,int _width,int _height)
{
    QPainter p(this);
    p.setPen(QPen(Qt::red,3,Qt::SolidLine));
    p.drawLine(x,y,x +0,_height/4+y);
    p.drawLine(x,y+ _height,x + 0,_height - _height/4+y);
    p.drawLine(x,y,x +_width/4,0+y);
    p.drawLine(x,y+_height,x +_width/4,_height+y);
    p.drawLine(_width+x,y+_height,x +_width - _width/4,_height+y);
    p.drawLine(_width+x,y+_height,x +_width,_height - _height/4+y);
    p.drawLine(_width+x,y,x + _width-_width/4,0+y);
    p.drawLine(_width+x,y,_width+x,_height/4+y);
    //custom brush for rectangle
    //p.fillRect(x,y,_width,_height,QBrush(QColor(40,0,0,50)));
}