【问题标题】:Why are Tk GUI's considered ugly? [closed]为什么 Tk GUI 被认为是丑陋的? [关闭]
【发布时间】:2008-12-08 12:45:18
【问题描述】:

Tk GUI 似乎被普遍认为是丑陋的,但我想知道具体原因。 Tcl/Tk 世界中的一些人会争辩说,这是一个有争议的问题,因为现在对原生外观和感觉有更好的支持,这是我决定使用 Tcl/Tk 的一个重要原因。然而,现在的问题是,因为我正在利用 Tcl/Starkit vfs(虚拟文件系统),本机文件对话框不起作用,我将不得不恢复为纯 Tk 文件对话框。

我正在寻找具体的技术原因,例如关于字体别名(或缺少)或字体样式或颜色等。因为我个人不买“这对我来说很丑”。对我来说,它只是不同,我经常在 Mac 和 Windows 和 Linux 之间切换,所以我习惯了不同的外观/感觉。

具体来说,传统 Tk GUI 的主题式外观被认为是丑陋的:

【问题讨论】:

  • 现在我明白为什么他们说“一张照片值一千字”:)
  • 对我来说,许多 Tk 程序中最明显的特定故障是胖菜单栏。
  • 菜单栏是唯一看起来很原生的东西。
  • @Mechanicalsnail:您能否发回一张图片的链接,该图片显示的不是胖菜单栏,以进行比较?

标签: user-interface tk


【解决方案1】:

在这样的问题上尝试客观是相当困难的,我认为这在本质上是非常主观的。

似乎让我感到不安的几点:

  • 滚动条无处不在,而不仅仅是在需要的地方
  • 相当“胖”的滚动条,占用大量空间
  • 大量粗体字体,例如在菜单标题等中
  • 某些地方的等宽(“打字机样式”)文本

【讨论】:

  • “到处都是滚动条”——这是 UI 设计师的功能。除非您将滚动条放在那里,否则您不会在 Tk 应用程序中获得滚动条。并且很有可能根据内容制作隐藏或显示自己的滚动条。所有其余的 cmets 似乎只适用于非常旧的 Tk 版本,或者可能适用于 linux 版本。在 Mac 和 Windows 上,您可以获得原生字体、原生滚动条、可变宽度文本。
【解决方案2】:

我认为部分原因是 Tk 非常强大且易于使用,但它并没有太多的手持操作。因为它很容易,所以在 UI 设计方面经验不足的人可以在很短的时间内完成一些工作。但是,没有很多经验,他们依赖默认值和最短路径到解决方案(阅读:不要花时间隐藏不需要的滚动条,不要使用常用的工具栏成语,不要' t 正确对齐小部件等)。

不幸的是,Tk 的默认设置并不总是最漂亮的。正如问题中的屏幕截图所示,默认使用相对较粗的边框宽度和次优字体,并且复选框确实直接来自 80 年代。但是,在专家手中,所有这些问题都是可以在空闲时间处理的小问题。

例如,经过五分钟的调整,原始屏幕截图可能如下所示:

当然,这看起来还是有点笨拙,但可以说它比原来的要好很多。用一个小时来完成这项任务,可以进行更多改进。

使用 tk 8.5(实际上是几年前)支持主题和原生小部件,甚至 X11 版本也进行了小幅改进。不过,Tk 仍然落后于眼花缭乱的曲线,如果设计需要渐变、动画等,它会迫使人们“自己动手”。

然而,对于大多数类型的应用程序,Tcl 和 Tk 仍然是一个很好的实用解决方案。如果您试图与 Flash 应用程序竞争,您将失败。但是,如果您的工业应用程序只需要工作、可用并且可能是多平台的,那么 Tk 仍然是最好的选择之一。


截至 2015 年,有一篇关于现代化 Tkinter 的 IDLE IDE 的精彩文章。这篇文章描述了一些使 IDLE 看起来更现代的步骤:

【讨论】:

  • 我相信布莱恩是正确的。通过适当的护理,可以使 Tkinter 看起来非常漂亮。
  • @BryanOakley:你能把上面的图片修复在“......原始截图可能看起来像这样:”的段落之后吗?现在它在我的 Firefox 浏览器上显示为“alt text”。
  • @bgoodr:如果我不得不猜测的话,我会说 stackoverflow 的图像托管服务已关闭。如果我直接访问图片中的 URL,我会得到 505。
  • 能否请您在此处发布调整,以便其他人可以真正开始研究它们
  • @Копать_Шо_я_нашел:感谢您指出这一点。我已经重新添加了图像。
【解决方案3】:

TK 对本机外观 GUI 的支持比以前要好得多。早期版本的 Tk 具有类似主题的外观和感觉,旨在与基于主题的桌面环境(如 MWM 和 CDE)一起使用。在这种环境下,它看起来像一个原生应用程序。长期以来,Motif 被用作 X11 应用程序的默认 GUI 工具包。 GTK 和(在一定程度上)QT 的出现意味着许多此类应用程序不再是这种情况。

大多数现代跨平台 GUI 工具包——GTK、QT Tk、WXWidgets 等——现在都有一些机制来使用底层的原生小部件。 WX 从一开始就是为此而设计的——X11 上的 GTK 和 Motif 版本,Windows 上的 Win32 和(IIRC)OSX 版本。 GTK 有一个主题引擎并使用基于本机小部件的主题。 QT 模拟外观和感觉,Tk 有一个原生工具包的包装器。

具有原生外观的 TK 应用示例:

  1. SnackAmp(Vista 上的 Win32)

  1. Linux 上的 PostgreSQL 访问

【讨论】:

    【解决方案4】:

    事实上,“它只是不同”的论点是我的主要原因。 Tk GUI 的外观和行为不像本机应用程序,这会在多个小方面影响“外观和感觉”,与给定系统上的本机应用程序相比,这会使复杂的应用程序感觉怪异和笨重。

    文件对话框可能是我所写内容的完美示例:它们可能不会比某些系统上的本机对话框“更糟”或“更好”,但它们是不同的,它们的行为与其他所有应用程序不同系统。

    如果您是 MacOS X 用户,您可以通过比较原生 Mac 应用程序与运行在带有 X11 兼容层(如 Gimp 或 Inkscape)的 Mac 上的应用程序来感受它。它们与所有其他应用程序的行为不同(顶部栏中没有菜单,cmd+tab 的工作方式略有不同,cmd+backtick 的工作方式大不相同),所以 - 虽然它们在 Linux X11 桌面上的行为很好 - 同样的行为在 Linux X11 桌面上感觉很奇怪和笨拙马克。

    Tk 的缺点是这些 GUI 实际上并不是任何地方的原生。

    对于可移植的 UI,我可能会推荐 wxWidgets,它只是系统提供的任何原生 UI 的通用 API 层(外观)。对于您目前的情况,这可能有点离题,但无论如何它可能值得一看。

    【讨论】:

    • +1 表示“Tk 的缺点是这些 GUI 实际上并不是任何地方的原生。”我认为这正是它被认为“丑陋”的原因。
    • 您知道 Tk 多年来一直拥有原生文件对话框吗?此外,tk 8.5 带有适用于 Mac 和 Windows 的本机小部件。唉,Linux 并没有真正的单一原生小部件集的概念。
    • TK 在最初开发时实际上是为了模仿“原生”Motif 外观而设计的。
    • 我同意外观和感觉差异(有时很明显,有时很微妙)是声誉不佳的主要原因。我对 Java 应用程序也有同样的感觉。 Tile 支持在解决这个问题上大有帮助,但开发人员仍然需要做很多仔细的工作才能让它感觉正确。
    • Tk 的声誉不仅来自于它的与众不同,而且主要来自于它具有非常老式的外观,如 Motif 和 Windows 3.11。在过去的 15 年中,人们已经习惯了更现代的 GUI,并习惯了同质化。我永远不会碰 Tk,因为它会让我的应用看起来陈旧而且……不专业。
    【解决方案5】:

    看来这个讨论应该 至少提及这些链接:

    http://wiki.tcl.tk/8646 http://wiki.tcl.tk/9485

    【讨论】:

      【解决方案6】:

      Tk 美不美,因人而异,但我想说它至少不丑(android 除外)。看看我使用纯 python 和 tkinter (Tk) 制作的程序的屏幕截图。你只需要知道如何以更漂亮的方式使用它。

      【讨论】:

        【解决方案7】:

        只是一个例子:如果你看一下你提供的例子,你会看到很多额外的行 - 滚动条有几行,然后文本持有者的矩形有几行,所以在边框上你有一个很多事情发生。

        对于程序员来说,我们从逻辑上看可能没有错,从逻辑上讲,每个元素都有自己的边框。但对于其他人来说,它看起来超负荷了。

        这是一个视觉设计问题,而不是编程问题。这更像是“为什么 iPod 好而 Zune 丑”之类的东西——你无法得到一个直接可衡量的答案,但大多数人仍然会同意,如果你关心他们,这是你需要做些什么的事实意见 - 即出售给他们。

        【讨论】:

          【解决方案8】:

          因为它的外观是由既不是 UX 也不是图形设计师而是程序员的人设计的。也许它解决了这个问题(在多个平台上拥有相同的 UI),但它看起来很丑。

          添加: 实际上,让 UI 达到不被认为丑陋的程度是一门艺术。我的团队中有两个极端。一个人只是不关心 UI:他看到一个按钮,不管它在屏幕上如何绘制,它都是一个按钮;即使您在鲜红色的背景上将它“使我的眼睛睁大”的石灰绿色,他仍然会认为它是一个按钮,因为它“像按钮一样嘎嘎作响”。另一个团队成员就是要让 UI 变得“酷”。但他完全忽略了这一点,即 Office 2007 不仅仅是闪亮的外观使“Office 2007”成为“Office 2007”,还包括图标、控件之间的一致性、您与它们交互的方式——所有这些看起来与感觉的小细节。结果?猪身上的口红。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-01-03
            • 2013-09-22
            • 2010-12-26
            • 1970-01-01
            • 2011-11-25
            • 1970-01-01
            • 1970-01-01
            • 2011-10-02
            相关资源
            最近更新 更多