问题描述
我实现了一个单选按钮网格,每个按钮都有唯一的图像。
photo[i] = ImageTk.PhotoImage(file=image_file)
button[i] = Radiobutton(frame,variable=var,value=i+1,indicatoron=0,image=photo[i],selectcolor='#808080')
button[i].pack(side=LEFT)
OSX上的图像看起来非常像素化,如下所示:
相同的代码在ubuntu上也可以正常工作(无可见像素)。下面是原始图像:
解决方法
问题出在here所述的tcl tk系统版本上。
如果您使用的是macOS 10.6或更高版本,则由Apple提供的Tcl / Tk 8.5 有严重的错误,可能会导致应用程序崩溃。如果你想 使用IDLE或Tkinter,请不要使用Apple提供的Python。代替, 从python.org或更高版本安装并使用更高版本的Python 提供或链接较新版本的第三方发行商 Tcl / Tk。
这甚至引起了我模糊的单选按钮体验。
如果您正在使用任何当前python.org Python安装程序中的Python 对于macOS(3.9.0 +,3.8.0 +或3.7.2+),无需采取进一步措施即可 使用IDLE或tkinter。将使用Tcl / Tk 8.6的内置版本。
我用IDLE运行了代码,效果很好!尽管我仍然无法更改Apple提供的越野车系统tcl tk。