You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt中边长小于1的QPolygon无法绘制问题咨询

QPolygon绘制小边长多边形失败的原因及解决办法

这不是drawPolygon的限制,问题出在你用错了坐标类型:

  • QPolygon内部存储的是QPoint类型的整数坐标,当你传入QPoint(0,0.5)这类带小数的参数时,小数部分会被直接截断,最终所有点都会变成QPoint(0,0),四个点完全重合,自然画不出任何图形。
  • 第二个例子用的是整数坐标QPoint(0,1),没有精度丢失,所以能正常绘制。

解决办法

你有两种选择:

  1. 使用QPolygonF搭配QPointF来存储浮点坐标,这样就能保留小数精度:
points1 = QPolygonF([
                    QPointF(0,0),
                    QPointF(0,0.5),
                    QPointF(0.5,0.5),
                    QPointF(0.5,0)])
p.drawPolygon(points1)
p.end()
  1. 如果必须使用整数坐标,可以先将坐标值放大(比如乘以10),绘制完成后再缩放绘图区域,还原到实际大小。

内容的提问来源于stack exchange,提问作者niko101a3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 13:20:28