Почему Tk GUI считается уродливым? - PullRequest
30 голосов
/ 08 декабря 2008

Tk GUI, кажется, повсеместно считается некрасивым, но я хотел бы знать, почему конкретно. Некоторые в мире Tcl / Tk утверждают, что это спорный вопрос, так как теперь гораздо лучше поддержка нативного внешнего вида, что является большой причиной, по которой я выбрал Tcl / Tk. Однако теперь проблема заключается в том, что, поскольку я использую Tcl / Starkit vfs (виртуальную файловую систему), собственные диалоговые окна файлов не работают, и мне придется вернуться к диалогам с чистыми файлами Tk.

Пожалуйста, я ищу конкретные технические причины, например, относительно псевдонима шрифта (или его отсутствия), стиля шрифта или цвета и т. д. Потому что я лично не покупаю "это просто безобразно для меня". Для меня все по-другому, и я регулярно переключаюсь между Mac, Windows и Linux, так что я привык к разным взглядам.

В частности, мотив традиционного графического интерфейса пользователя Tk выглядит уродливо:

Tcl/Tk GUI Sample

Ответы [ 7 ]

45 голосов
/ 08 декабря 2008

Я думаю, что одна из причин в том, что Tk удивительно мощный и простой в использовании, но он не требует много ручных операций. Поскольку это так просто, люди с небольшим опытом в дизайне пользовательского интерфейса могут получить что-то для работы в очень короткие сроки. Но, не имея большого опыта, они полагаются на значения по умолчанию и кратчайший путь к решению (читай: не тратьте время на скрытие полос прокрутки, когда они не нужны, не используйте общие идиомы для панелей инструментов, не правильно выровнять виджеты и т. д.).

К сожалению, настройки Tk по умолчанию не всегда самые красивые. Как показывает скриншот в вопросе, по умолчанию используются относительно толстые границы и субоптимальные шрифты, и флажки действительно прямо из 80-х. В руках эксперта, однако, все эти проблемы являются незначительными проблемами, которые можно решить в свободные моменты.

Например, после пяти минут настройки оригинальный скриншот может выглядеть следующим образом:

slightly improved ui

Конечно, это все еще немного неуклюже, но, возможно, это значительно лучше, чем оригинал. Благодаря часу, посвященному этой задаче, можно сделать еще несколько улучшений.

С версией 8.5 (и фактически за пару лет до этого) есть поддержка тем и родных виджетов, и даже версия X11 получает незначительную подтяжку лица. Тем не менее, Tk все еще отстает от кривой в глазах, заставляя «катиться самостоятельно», если дизайн требует градиентов, анимации и т. Д.

Tcl и Tk, однако, остаются хорошим прагматическим решением для большинства типов приложений. Если вы пытаетесь конкурировать с флэш-приложением, вы проиграете. Но если у вас есть промышленное приложение, которое просто должно работать и быть пригодным для использования и, возможно, мультиплатформенным, Tk по-прежнему остается одним из лучших вариантов.


По состоянию на 2015 год есть хорошая статья о модернизации IDLE IDE в Tkinter. В статье описываются некоторые шаги, чтобы сделать IDLE более современным:

30 голосов
/ 08 декабря 2008

Аргумент "это просто другое" - это, по сути, главная причина для меня. Графические интерфейсы Tk не выглядят и не ведут себя как нативное приложение, которое влияет на «внешний вид» несколькими различными способами, что делает сложное приложение странным и неуклюжим по сравнению с нативными приложениями в данной системе.

Файловые диалоги могут быть прекрасным примером того, о чем я пишу: они не могут быть "хуже" или "лучше", чем родные диалоги в некоторых системах, но они ОТЛИЧНЫ, они ведут себя по-разному для всех остальных приложений на система.

Если вы пользователь MacOS X, вы можете почувствовать это, сравнив собственные приложения Mac с приложениями, работающими на Mac со слоем совместимости X11 (например, Gimp или Inkscape). Они ведут себя по-разному со всеми другими приложениями (меню на верхней панели отсутствует, вкладка cmd + работает немного по-другому, обратная команда cmd + работает по-разному), поэтому, хотя их поведение на рабочем столе Linux X11 нормальное, такое же поведение выглядит странно и неуклюже на Mac.

Недостатком Tk является то, что эти GUI на самом деле нигде не являются родными.

Для переносимого пользовательского интерфейса я могу порекомендовать wxWidgets, которые являются просто общим уровнем API (фасадом) для любого собственного пользовательского интерфейса, предоставляемого вашей системой. Это может быть немного оффтоп для вашей текущей ситуации, но это может стоить посмотреть в любом случае.

19 голосов
/ 08 декабря 2008

TK имеет значительно лучшую поддержку встроенного графического интерфейса, чем раньше. Более ранние версии Tk имели внешний вид и стиль, которые предназначались для использования с настольными средами на основе мотивов, такими как MWM и CDE. В этой среде это выглядело как нативное приложение. Долгое время Motif использовался в качестве набора инструментов по умолчанию для приложений X11. Появление GTK и (в некоторой степени) QT означает, что это уже не так для многих таких приложений.

Большинство современных кроссплатформенных инструментов GUI - GTK, QT Tk, WXWidgets и другие - теперь имеют некоторый механизм для использования базовых родных виджетов. WX был разработан для этого с самого начала - версии GTK и Motif для X11, Win32 для Windows и (IIRC) для OSX. GTK имеет движок тем и использует темы, основанные на нативных виджетах. QT эмулирует внешний вид, а у Tk есть оболочка для нативного инструментария.

Примеры приложений TK с нативным внешним видом:

  1. SnackAmp (Win32 на Vista)

SnackAmp Tk GUI on Windows Vista

  1. PostgreSQL Access в Linux

Native looking Tk API

9 голосов
/ 08 декабря 2008

Потому что его стиль был разработан людьми, которые не являются ни UX, ни графическими дизайнерами, а программистами. Возможно, это решает проблему (имея один и тот же пользовательский интерфейс на нескольких платформах), но выглядит ужасно.

Добавлено: На самом деле, доведение пользовательского интерфейса до такой степени, что это не считается уродливым, является искусством. У меня есть две крайности в моей команде. Одного парня просто не волнует пользовательский интерфейс: он видит кнопку, и это кнопка, независимо от того, как она нарисована на экране; даже если вы нарисуете его «поп мои глаза» светло-зеленым на ярко-красном фоне, он все равно будет считать это кнопкой, потому что она «крякает как кнопка». Другой член команды занимается тем, чтобы сделать интерфейс "крутым". Но он совершенно упускает из виду, что не только блестящий внешний вид делает Office 2007 «Office 2007», но и значки, согласованность всех элементов управления, способ взаимодействия с ними - все эти мелкие детали, которые припадают к ощущению. Результат? Губная помада на поросёнке.

8 голосов
/ 08 декабря 2008

Только один пример: если вы посмотрите на предоставленный вами пример, вы увидите много дополнительных строк - у полосы прокрутки их несколько, а у прямоугольника держателя текста - несколько, поэтому на границе у вас есть скорее много происходит

Для программиста не может быть ничего плохого, поскольку мы видим логически, и логически каждый элемент просто имеет свою границу. Но для остальных людей это выглядит перегруженным.

Это вопрос визуального дизайна, а не вопроса программирования. Это больше похоже на «почему iPod хорош, а Zune уродлив» - вы не можете получить прямой измеримый ответ, но большинство людей с этим согласятся, и с этим нужно что-то делать, если вы заботитесь об их мнения - т.е. продавать им.

6 голосов
/ 08 декабря 2008

Сложно попытаться быть объективным в этом вопросе, я думаю, это очень субъективно.

Несколько моментов, которые меня беспокоят:

  • Полосы прокрутки везде, а не только там, где это необходимо
  • Скорее "толстые" полосы прокрутки, которые занимают много места
  • Множество смелых шрифтов, например в заголовках меню и т. д.
  • Текст с постоянной шириной ("стиль пишущей машинки") в некоторых местах
5 голосов
/ 09 декабря 2008

Кажется, это обсуждение должно хотя бы упомянуть эти ссылки:

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

...