【问题标题】:Why is the Tkinter render quality much worse on windows?为什么 Windows 上的 Tkinter 渲染质量要差得多?
【发布时间】:2017-08-10 18:32:34
【问题描述】:

我在 Mac 上使用 Tkinter 开发了一个 python 应用程序。它涉及表格和画布图纸。在 Mac 上,它看起来很棒。然而,在我的戴尔笔记本电脑(4K 显示屏,比我的 Mac 更强大)上,Tkinter ui 显得非常像素化,并且某些元素的位置略有不同。这个问题是什么,我可以做些什么来更好地在戴尔 Windows 10 或其他平台上渲染 Tkinter? 这是 UI 相同部分的屏幕截图(显示表单和画布绘图)...

Windows(坏)

Mac(正常)

【问题讨论】:

  • 我有一个 qhd 设备,我的应用程序也有同样的问题,这就是所谓的缩放。您从较低的分辨率移动到 4k ,python 应该自动缩放,但它没有。您无能为力,但您可以将电脑分辨率更改为全高清而不是 4k。我为你的问题加了星标,我也想知道一个合适的解决方案而不降低我的分辨率
  • 情况截图可以帮助未来的用户识别(或不识别)你的情况。此外,它可能会帮助这里的人重现您的问题。
  • 已更新。干杯。
  • 您能否提供一个绘制 1 或 2 行的代码示例,以便我最终对其进行测试。 Minimal, Complete, and Verifiable example。我可能有一个解决方法,但我需要一些代码来测试。
  • 请您给我们您的代码,以便我们进行测试。

标签: python windows user-interface tkinter


【解决方案1】:

同一应用程序的显示差异是由于每个操作系统使用的渲染引擎不同。

这在名为 Tkinter GUI 应用程序开发蓝图的 Pakt pub 电子书中有所介绍

有关此主题的文章可在here.

这样做可能很痛苦,但看起来最常见的解决方法是检测您的环境并使用外部选项数据库编写独立样式 更多信息请参见文档here

【讨论】:

  • 最好有一个链接来显示您从哪里得到您的报价,但您应该尝试将相关段落拉到您的答案中。否则,如果将来链接被删除,您的回答将变得毫无意义。
【解决方案2】:

仅在 OSX 中为 Tkinter 画布对象启用抗锯齿。您可以使用aggDraw lib: http://effbot.org/zone/tkinter-aggdraw.htm 作为解决方法,否则在画布上绘图时会出现锯齿状线条。然而,所有主要平台上的字体都应消除锯齿。

【讨论】:

  • 即使使用抗锯齿,Mac 和 Windows 之间的字体看起来也会有所不同。请参阅blog.codinghorror.com/font-rendering-respecting-the-pixel-grid,其中还包含指向其他讨论的链接。
  • 我同意。更严重的问题似乎是锯齿状的圆圈和线条。我认为这是被问到的问题,而不是字体看起来不同的事实。
【解决方案3】:

假设 MAC 的分辨率为 1366x768(预期),假设您将应用程序窗口大小设置为 683x384,即等于 (1366/2 x 768/2)。

当应用程序将在 4k 显示器上运行时,它会将主窗口的尺寸显示为 683x384,但其在 4k 上的尺寸将为 4k/2。

所以你可以写一个屏幕尺寸可变的通用程序,这样它就会根据屏幕大小调整它的窗口大小。

更多详情请参考https://www.tutorialspoint.com/python3/python_gui_programming.htm

希望这会有所帮助。

【讨论】:

  • 这是否意味着小部件的每个高度宽度都需要是动态的?另外,在 4K 显示器上,窗口大小似乎是正确的,当然改变大小会使屏幕太大或太小,而不是改变分辨率?
猜你喜欢
  • 2021-09-13
  • 1970-01-01
  • 2014-07-09
  • 2017-01-09
  • 1970-01-01
  • 1970-01-01
  • 2017-11-16
  • 2021-12-13
  • 2017-11-14
相关资源
最近更新 更多