34

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

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

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

Tcl /TkGUIサンプル

4

8 に答える 8

54

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

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

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

少し改善されたUI

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

tk 8.5 では (実際には数年前から) テーマとネイティブ ウィジェットがサポートされており、X11 バージョンでさえマイナーなフェイスリフトが行われています。ただし、Tk はまだ目を楽しませてくれる曲線の後ろにあり、デザインでグラデーションやアニメーションなどが必要な場合は、「自分でロールバック」する必要があります。

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


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

于 2008-12-08T15:01:19.993 に答える
33

「それは違うだけだ」という議論は、実際、私にとって主な理由です. Tk GUI は、ネイティブ アプリケーションのように見えたり動作したりしません。これは、複数の小さな方法で「ルック アンド フィール」に影響を与えるため、特定のシステムのネイティブ アプリと比較して、複雑なアプリが奇妙でぎこちなく感じられます。

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

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

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

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

于 2008-12-08T12:56:50.417 に答える
22

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)

Windows Vista の SnackAmp Tk GUI

  1. Linux での PostgreSQL アクセス

ネイティブに見える Tk API

于 2008-12-08T13:05:44.237 に答える
10

そのルック アンド フィールは、UX でもグラフィック デザイナーでもなく、プログラマーによって設計されたものだからです。問題は解決するかもしれませんが (多数のプラットフォームで同じ UI を使用する)、見栄えが悪くなります。

追加: 実際、UI を見苦しくないと見なされるようにすることは芸術です。私のチームには 2 つの極端な点があります。ある男は、UI をまったく気にしません。彼はボタンを見て、それが画面にどのように描かれてもボタンです。真っ赤な背景に「ポップマイアイ」ライムグリーンをペイントしても、「ボタンのように鳴る」ため、ボタンと見なされます。もう 1 人のチーム メンバーは、UI を「クール」にすることに専念しています。しかし彼は、Office 2007 を「The Office 2007」にしているのは光沢のある外観だけでなく、アイコン、コントロール全体の一貫性、それらとのやり取りの方法など、これらすべての細かい部分が感触を持ってはんだ付けされているという点を完全に見落としています。結果?豚の口紅。

于 2008-12-08T13:07:20.660 に答える
9

ほんの一例: あなたが提供した例を見ると、多くの余分な行が表示されます.スクロールバーにはいくつかあり、テキストホルダーの長方形にはいくつかあります.

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

これはプログラミングの問題ではなく、ビジュアル デザインの問題です。これはどちらかというと「なぜ iPod が良くて Zune が醜いのか」というようなものです - 直接測定可能な答えを得ることはできませんが、それでもほとんどの人は同意するでしょう。意見 - つまり、彼らに売り込むこと。

于 2008-12-08T13:14:02.393 に答える
6

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

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

于 2008-12-09T03:23:07.657 に答える
6

このような問題について客観的になろうとするのはかなり難しいです。これは本質的に非常に主観的なものだと思います。

私を邪魔しているように見えるいくつかの点:

  • 必要な場所だけでなく、あらゆる場所にスクロールバー
  • 多くのスペースを占める、むしろ「太い」スクロールバー
  • メニュー タイトルなどに使用される太字のフォントが豊富
  • 一部の固定幅 (「タイプライター スタイル」) テキスト
于 2008-12-08T13:03:05.520 に答える
1

Tkが美しいかそうでないかは人によるけど、少なくとも醜くはないと思います(アンドロイドを除く)。純粋な python と tkinter (Tk) を使用して作成したプログラムのスクリーンショットを見てください。より美しい方法で使用する方法を知る必要があります。ここに画像の説明を入力ここに画像の説明を入力

于 2020-05-16T11:28:15.533 に答える