Подтвердить что ты не робот

Почему TK GUI считается уродливым?

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

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

В частности, мотивационный вид традиционного GUI Tk считается уродливым:

Tcl/Tk GUI Sample

4b9b3361

Ответ 1

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

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

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

немного улучшено ui

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

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

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


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

Ответ 2

"Это просто другой" аргумент, по сути, является главной причиной для меня. Tk GUI не выглядят и не ведут себя как родное приложение, которое влияет на "внешний вид и чувство" несколькими способами, что делает сложное приложение странным и неуклюжим по сравнению с родными приложениями в данной системе.

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

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

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

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

Ответ 3

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

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

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

  • SnackAmp (Win32 на Vista)

SnackAmp Tk GUI on Windows Vista

  1. PostgreSQL Access в Linux

Native looking Tk API

Ответ 4

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

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

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

Ответ 5

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

Добавлено: Фактически, получение пользовательского интерфейса до такой степени, что оно не считается уродливым, - это искусство. У меня две крайности в моей команде. Один парень просто не заботится о пользовательском интерфейсе: он видит кнопку и кнопку, независимо от того, как она нарисована на экране; даже если вы нарисуете его "pop my eyes" lime green на ярко-красном фоне, он все равно будет считать его кнопкой, потому что это "шарлатит как кнопка". Другой член команды - это создание пользовательского интерфейса "cool". Но он полностью не понимает, что это не просто блестящий взгляд делает Office 2007 "The Office 2007", но он также значками, согласованностью между элементами управления, тем, как вы с ними взаимодействуете - все эти маленькие детали, которые припаивают с чувством. Результат? Помада на свинье.

Ответ 6

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

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

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