Tkinter Unix和Windows不兼容
大家好,
我正在尝试为我的项目创建自定义TKINTER/PMW小部件.
在Unix(Solaris)下测试了我的小部件后,我在下面尝试了它们
Windows和我感到惊讶.
小部件以不同的方式出现.
以下简单代码段展示了不同的区别:
root = tk()
w = canvas(root,width = 12,高度= 12,bd = 4,浮雕=升高,
bg ='青色')
w.create_rectangle(5,5,16,16,fill ='blue',utline ='black')
w.pack()
w2 = canvas(root,width = 12,高度= 12,bd = 0,浮雕=升高,
bg ='紫色')
w2.create_oval(0,0,12+1,12+1,fill ='blue',utline ='')
w2.pack()
w3 = canvas(root,width = 32,高度= 32,bd = 4,浮雕=升高,
bg ='紫色')
w3.Create_Oval(4+0,4+0,4+32+1,4+32+1,填充='Blue',utline ='')
w3.pack()
root.mainloop()
//
我注意到了差异,因为矩形(或椭圆形)对象
帆布覆盖了整个帆布,因此大小的差异很小
非常明显.
由于TKINTER是TK的薄包装层,我怀疑
差异植根于TK.
我在Unix下使用TK8.5,而Windows下的Python则使用TK8.4.
由于我在带有TK8.5的Windows下无法访问Python,所以我
无法验证Windows的TK8.5下是否已解决此问题.
//
所以,这是我的问题:
(1)可以在带有TK8.5的Windows下访问Python的任何人
验证问题是否已解决.
如果问题是固定的,则将矩形和椭圆形刻在
画布边界很好.
如果没有
我认为一个像素更大.边界宽度也不正确
(右侧是一个像素宽).
(2)当Windows下的Python的正式分布使用TK8.4,
什么是使我的小部件在下面正确工作的最佳方法
两个环境?
- 我可以使用sys.platform以不同的代码,以便它们看起来
相同的.
- 恐怕在最终引入TK8.5时会造成问题
到窗户下的python.
有什么建议么?
Aki Niimura