【问题标题】:Tkinter Radiobutton: Image pixelated on OSX but works fine in UbuntuTkinter Radiobutton:图像在 OSX 上像素化,但在 Ubuntu 上运行良好
【发布时间】:2021-02-24 05:56:02
【问题描述】:

我已经实现了一个单选按钮网格,每个单选按钮都有一个独特的图像。

我在下面包含了相关的代码行:

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 上也能正常工作(没有可见的像素化)。以下是原图:

【问题讨论】:

  • 无法重现,它在 osx 10.12.5 上看起来很完美 - 可能发布您用于显示图像的整个代码(包括导入)。
  • 我有 10.15.6 但我不认为这应该是错误的来源。您能否提供您编写的代码,以便我可以在我的机器上检查它?谢谢。
  • 在我的系统上尝试了@ReblochonMasque 代码。图像仍然是像素化的。

标签: python macos tkinter radio-button tcltk


【解决方案1】:

问题出在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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 2021-03-13
    • 1970-01-01
    相关资源
    最近更新 更多