User interface 为什么Tk GUI';它被认为很丑吗?

User interface 为什么Tk GUI';它被认为很丑吗?,user-interface,tk,User Interface,Tk,TKGUI似乎被普遍认为是丑陋的,但我想知道具体原因。Tcl/Tk世界中的一些人会认为这是一个没有实际意义的观点,因为现在对本地外观和感觉的支持要好得多,这也是我决定使用Tcl/Tk的一个重要原因。然而,现在的问题是,因为我正在利用Tcl/Starkit vfs(虚拟文件系统),本机文件对话框不起作用,我将不得不恢复到纯Tk文件对话框 我正在寻找具体的技术原因,例如关于字体别名(或缺少别名)、字体样式或颜色等。因为我个人不相信“这对我来说太难看了”。对我来说,这完全不同,我经常在Mac、Wind

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

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

具体来说,传统Tk GUI的母题式外观被视为丑陋:

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

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

如果您是MacOS X用户,您可以通过将本机Mac应用程序与运行在Mac上且具有X11兼容层(如Gimp或Inkscape)的应用程序进行比较来了解它。它们的行为与所有其他应用程序不同(顶部栏没有菜单,cmd+tab的工作方式有点不同,cmd+backtick的工作方式有很大的不同),因此,尽管它们在Linux X11桌面上的行为很好,但在Mac上同样的行为让人觉得奇怪和笨拙

Tk的缺点是这些GUI实际上并不是本地的


对于一个可移植的UI,我可能会推荐wxWidgets,它只是系统提供的任何本地UI的一个公共API层(外观)。就你目前的情况而言,这可能有点离题,但无论如何都值得一看。

对于这样一个问题,很难做到客观,我认为这在本质上是非常主观的

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

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

TK对本机外观GUI的支持比以前要好得多。Tk的早期版本具有motif-ish的外观,旨在与基于motif的桌面环境(如MWM和CDE)一起使用。在这种环境中,它看起来像一个本机应用程序。很长一段时间以来,Motif被用作X11应用程序的默认GUI工具包。GTK和(某种程度上)QT的出现意味着许多此类应用不再是这样

大多数现代跨平台GUI工具包——GTK、QT Tk、WXWidgets和其他工具——现在都有一些机制来使用底层的本机小部件。WX从一开始就被设计成这样——X11上的GTK和Motif版本,Windows上的Win32版本,以及(IIRC)OSX版本。GTK有一个主题引擎,使用基于本机小部件的主题。QT模拟外观,Tk有一个本机工具包的包装器

具有本机外观的TK应用程序示例:

  • SnackAmp(Vista上的Win32)
  • Linux上的PostgreSQL访问

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

    增加:
    实际上,让用户界面达到不被认为丑陋的程度是一门艺术。我的团队有两个极端。一个家伙根本不在乎UI:他看到一个按钮,不管它在屏幕上是如何画的,它都是一个按钮;即使你把它漆成“我的眼睛”,在明亮的红色背景下,灰绿色,他仍然会认为这是一个按钮,因为它“嘎嘎作响”。另一个团队成员则致力于让UI“酷”。但他完全忽略了一点,即Office2007之所以成为“Office2007”,不仅仅是因为它的闪亮外观,还因为它的图标、控件之间的一致性、与控件的交互方式——所有这些小细节都让它看起来很有感觉。结果如何?一个猪的唇膏。

    < P>只是一个例子:如果你看你提供的例子,你会看到很多额外的线条——滚动条有几个,那么文本保持器的矩形有几个,所以在边界上你有很多事情发生。 对于程序员来说,我们从逻辑上看可能没有什么错,逻辑上每个元素都有自己的边界。但对其他人来说,这似乎是超负荷的


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

    我认为部分原因是Tk功能强大且易于使用,但手握功能不强。因为它是如此简单,在UI设计方面缺乏经验的人可以在很短的时间内完成一些工作。但是,由于缺乏经验,他们依赖于默认设置和最短路径解决方案(请阅读:在不需要滚动条时不要花时间隐藏滚动条,不要对工具栏使用常用习惯用法,不要正确对齐小部件,等等)

    不幸的是,Tk的默认值并不总是最漂亮的。正如问题中的屏幕截图所示,默认设置使用了相对较厚的边框宽度和次优字体,并且复选框确实是80年代的产物。不过,在专家手中,所有这些问题都是可以解决的小问题