Windows上的qt中painter的setBrush不知道为什么把我的setPen给覆盖了
QPinater p;
p.setPen(Qt::black);
p.setBrush(Qt::red);
结果出来的是无填充红色
请问是怎么回事?Linux上还正常的
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()
,看看是否解决了问题。
如果以上建议仍无法解决问题,请提供更多关于您的代码的详细信息,以便我们能够为您提供更有针对性的建议。