canvas.create_line(50, 500, 950, 500, dash=(5, 1), tags="splitDistance")
这将创建一个如下所示的行:
XXXXX XXXXX XXXXX XXXXX
5个破折号,1个空格然后重复,如this文档所述
但是当将1更改为任何值时,不会更改间隙大小。
dash=(5, 100)
:
XXXXX XXXXX XXXXX XXXXX
另一个奇怪的行为是,第一个参数仅在可以被5分割时改变结果,例如:(5,10,15,20 ......)
dash=(1, 1)
:
X X X X X X X X X X X X
dash=(4, 1)
:
X X X X X X X X X X X X
dash=(5, 1)
:
XXXXX XXXXX XXXXX XXXXX
以下是该计划和结果的图片:
答案 0 :(得分:2)
不同的平台支持不同的破折号模式。您所看到的是Windows不支持与基于X的系统相同的破折号模式。
来自canonical tcl/tk documentation on the dash
attribute来自这些例子(在tcl语法中,但是对tkinter的翻译很简单):
-dash . → -dash {2 4}
-dash - → -dash {6 4}
-dash -. → -dash {6 4 2 4}
-dash -.. → -dash {6 4 2 4 2 4}
-dash {. } → -dash {2 8}
-dash , → -dash {4 4}
文档继续这样说:
在仅支持一组有限的虚线模式的系统上,虚线模式将显示为可用的最近的虚线模式。例如,在Windows上,只有上述示例中的前4个可用。最后两个示例将与第一个示例完全相同。