Qt drawLine宽度为1

时间:2015-03-07 07:27:34

标签: qt graphics

我正在写一个CAD程序,我发现了一个奇怪的错误,长话短说,下面的代码显示了错误:

p.setPen(QPen(Qt::white, 3));
p.drawLine(410.738, 364.399, -63151.2, -63197.6);
p.setPen(QPen(Qt::cyan, 1));
p.drawLine(410.738, 364.399, -63151.2, -63197.6);

enter image description here

虽然起点和终点坐标完全相同,但这两条线的斜率不同(第一行具有正确的斜率而青色线不正确)。有什么建议吗?

P.S:我使用Qt 4.72

1 个答案:

答案 0 :(得分:4)

您使用了错误的drawLine()签名。您使用的那个以int为参数。 double值会转换为int。根据体系结构,结果值可能太大而无法转换为int,并且您会得到未定义的行为。将drawLine()QPointF结合使用:

    p.setPen(QPen(Qt::white, 3));
    p.drawLine(QPointF(410.738, 364.399), QPointF(-63151.2, -63197.6));
    p.setPen(QPen(Qt::cyan, 1));
    p.drawLine(QPointF(410.738, 364.399), QPointF(-63151.2, -63197.6));

enter image description here