web-dev-qa-db-ja.com

Tk GUIが醜いと見なされるのはなぜですか?

Tk GUIは普遍的に醜いと考えられているようですが、具体的にその理由を知りたいと思います。 Tcl/Tkの世界の中には、ネイティブのルックアンドフィールのサポートが大幅に改善されたため、これは議論の余地があると主張する人もいます。これが、Tcl/Tkを決定した大きな理由です。ただし、問題は、Tcl/Starkit vfs(仮想ファイルシステム)を利用しているため、ネイティブファイルダイアログが機能せず、純粋なTkファイルダイアログに戻らなければならないことです。

特定の技術的な理由を探しています。フォントエイリアシング(またはその欠如)またはフォントスタイル、または色などに関して。個人的には「醜い」は買わないから。私にとっては、それはまったく異なり、MacとWindowsとLinuxを定期的に切り替えるので、見た目や使い心地が異なることに慣れています。

具体的には、従来のTkGUIのモチーフっぽい外観は醜いと見なされます。

Tcl/Tk GUI Sample

30
George Jempty

その理由の一部は、Tkが驚くほど強力で使いやすいが、手持ちがあまりできないことだと思います。とても簡単なので、UIデザインの経験が少ない人でも、非常に短い順序で何かを動作させることができます。しかし、多くの経験がなければ、デフォルトとソリューションへの最短パスに依存します(読む:スクロールバーが不要なときに非表示にするのに時間をかけないでください。ツールバーに一般的なイディオムを使用しないでください。 tウィジェットなどを適切に配置します)。

残念ながら、Tkのデフォルトが常に最も美しいとは限りません。質問のスクリーンショットが示すように、デフォルトでは比較的太い境界線の幅と次善のフォントが使用されており、チェックボックスは確かに80年代のものです。しかし、専門家の手には、これらの問題はすべて、アイドル状態の瞬間に対処できる小さな問題です。

たとえば、5分間微調整すると、元のスクリーンショットは次のようになります。

slightly improved ui

確かにそれはまだ少し不格好な見た目ですが、間違いなくそれはかなりの点でオリジナルよりも優れています。このタスクに1時間費やすと、さらにいくつかの改善を行うことができます。

Tk 8.5(そして実際には数年前)では、テーマとネイティブウィジェットがサポートされており、X11バージョンでもマイナーな改良が加えられています。ただし、Tkはまだ目を見張るようなものではなく、デザインでグラデーションやアニメーションなどが必要な場合は、「自分でロール」する必要があります。

ただし、TclとTkは、ほとんどの種類のアプリケーションに適した実用的なソリューションです。あなたがフラッシュアプ​​リケーションと競争しようとしているなら、あなたは負けるでしょう。しかし、機能し、使用可能で、おそらくマルチプラットフォームである必要がある産業用アプリケーションがある場合でも、Tkは依然として最良の選択肢の1つです。


2015年の時点で、TkinterのIDLEIDEの最新化に関する素晴らしい記事があります。この記事では、IDLEをよりモダンな外観にするために実行したいくつかの手順について説明します。

45
Bryan Oakley

「それはただ違う」という議論は、実際、私にとっての主な理由です。 Tk GUIは、ネイティブアプリケーションのように見えたり動作したりしないため、「ルックアンドフィール」にさまざまな影響を及ぼし、特定のシステムのネイティブアプリと比較して、複雑なアプリが奇妙で不格好に感じられます。

ファイルダイアログは、私が書いていることの完璧な例かもしれません。一部のシステムではネイティブダイアログよりも「悪い」または「良い」ではないかもしれませんが、それらは異なり、システム上の他のすべてのアプリケーションとは異なる動作をします。

MacOS Xユーザーの場合は、ネイティブMacアプリとX11互換性レイヤー(GimpやInkscapeなど)を備えたMacで実行されているアプリを比較することでその感触をつかむことができます。これらは他のすべてのアプリとは動作が異なります(トップバーにメニューがない、cmd + tabの動作が少し異なる、cmd + backtickの動作が大きく異なる)ので、Linux X11デスクトップでは動作は良好ですが、同じ動作は奇妙で不格好に感じますマック。

Tkの欠点は、これらのGUIが実際にはどこにもネイティブではないことです。

ポータブルUIの場合、システムが提供するネイティブUIに共通のAPIレイヤー(ファサード)であるwxWidgetsをお勧めします。それはあなたの現在の状況にとって少しオフトピックかもしれませんが、とにかく見る価値があるかもしれません。

31

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)

SnackAmp Tk GUI on Windows Vista

  1. LinuxでのPostgreSQLアクセス

Native looking Tk API

そのルックアンドフィールは、UXでもグラフィックデザイナーでもないがプログラマーである人々によって設計されたからです。多分それは問題を解決します(多くのプラットフォームで同じUIを持っています)が、それは醜いように見えます。

追加:実際、UIを醜いと見なされないところまで到達させることは芸術です。私のチームには2つの極端な点があります。ある人はUIを気にしません。彼にはボタンが表示され、画面にどのように描画されていてもボタンです。真っ赤な背景にライムグリーンを「ポップマイアイ」ペイントしても、「ボタンのように鳴る」ので、ボタンと見なされます。他のチームメンバーは、UIを「クール」にすることについてすべてです。しかし、彼は、Office2007を「Office2007」にするのは光沢のある外観だけでなく、アイコン、コントロール間の一貫性、操作方法など、はんだの外観が手触りの良いものであるという点を完全に見逃しています。結果?豚の口紅。

9
wasker

ほんの一例です。提供した例を見ると、余分な行がたくさんあります。スクロールバーには数行あり、テキストホルダーの長方形には数行あるため、境界線ではかなり多くのことが発生しています。

プログラマーにとって、論理的には何も悪いことはないかもしれません。論理的には、すべての要素には独自の境界線があります。しかし、残りの人々にとっては、それは過負荷に見えます。

これは視覚的なデザインの質問であり、プログラミングの質問ではありません。これは、「iPodが素晴らしく、Zuneが醜い理由」のようなものです。正確な測定可能な答えを得ることができませんが、それでもほとんどの人は同意します。意見-すなわち、彼らに売ること。

8
n-alexander

そのような問題について客観的にしようとするのはかなり難しいです、これは私が思うに非常に主観的です。

私を邪魔しているように見えるいくつかのポイント:

  • 必要な場所だけでなく、どこにでもあるスクロールバー
  • かなり「太い」スクロールバーで、多くのスペースを占有します
  • 太字のフォントがたくさんあります。メニュータイトルなどで
  • 一部の場所で一定幅(「タイプライタースタイル」)のテキスト
6
unwind

この議論では、少なくともこれらのリンクについて言及する必要があるようです。

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

5
RevSnow