Windows上的qt中painter的问题

Windows上的qt中painter的setBrush不知道为什么把我的setPen给覆盖了

QPinater p;
p.setPen(Qt::black);
p.setBrush(Qt::red);

结果出来的是无填充红色
请问是怎么回事?Linux上还正常的

在Windows上使用Qt的QPainter时,如果发现setBrush()似乎覆盖了setPen()的设置,可能的原因是绘图操作的顺序或者图形绘制函数的使用方式。

首先,请确保在使用QPainter进行绘图时,调用begin()end()方法正确地启动和结束QPainter。

QPainter p(this);
p.begin();
p.setPen(Qt::black);
p.setBrush(Qt::red);
// 绘制操作
p.end();

另外,请确保在调用setPen()setBrush()之后使用适当的绘图函数。例如,如果您要绘制一个矩形,应该使用drawRect()函数:

p.drawRect(x, y, width, height);

如果使用其他函数,如fillRect(),则只会应用QBrush设置,而不会应用QPen设置。

如果问题仍然存在,请尝试在调用setBrush()之前重新设置setPen(),看看是否解决了问题。

如果以上建议仍无法解决问题,请提供更多关于您的代码的详细信息,以便我们能够为您提供更有针对性的建议。