Qt drawLine 宽度为 1

Bar*_*dia 3 graphics qt

我正在编写一个 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);
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

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

PS:我使用 Qt 4.72

svl*_*sov 6

您使用了错误的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));
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明