2011-02-03 11 views
5

私たちのデスクトップアプリケーションは、Mac、Windows、Linuxで動作する必要があります。だから私たちはQtを選んだのです。以前は、3つのプラットフォーム用に3つのコードベースが用意されていました。Qt:Philosophical UI Designジレンマ

以前の実装では、[閉じる]、[最小化]、[最大化]ボタンを使用して独自の「ウィンドウキャプション」を作成しました。 3つのプラットフォームすべてで同じように見えます。

今回は周りが分かりません。私はQtに各プラットフォームのデフォルトのキャプションとキャプションボタン、長方形の "X"、 "_"ウィンドウのボタン、Macの左側の丸いボタン、そしてLinux/Ubuntuなどと一緒に使うことを考えました。

これは賢明な決定ですか?私がそこに押し込んでいることの1つは、私が書いているウィンドウクラスのサイズ変更コード、ドラッグコード、ボタンの作業、そしてあなた自身のウィンドウキャプションを書くことに伴うすべてのものを書かなければならないということです。

キャプションを削除するために「Qt :: FramelessWindowHint」を使用すると、サイズ変更のグラップルが自動的に失われることに気付きました。その周りに道がありますか?また、独自のウィンドウドラッグコードの実装についてはどうでしょうか? (あなたが "ドラッグ可能なキャプション"として使用したいと思っていた領域を知っていれば、その領域のボタンをキャッチし、ドラッグモードに入り、マウスの動きを追跡し、デルタに従ってウインドウを動かす必要があるようです。 Qtには「すぐに」行うことができる仕組みがあるかどうか質問したいと思っていましたか?

答えて

11

私はQTに何でもデフォルトのキャプションボタンと各プラットフォームのキャプションボタン

Macユーザーの場合、どこでも同じように見えるはずの「ユニバーサル」インターフェイスよりも混乱することはほとんどありません。Windowsスタイルのインターフェイスはconfusinですg。 Mac Styleインターフェースは、私が慣れていて、私が欲しいものです。

少ないコードを書く(維持してサポートする)必要がある場合は、それがさらに優れています。

可能な限り「ネイティブ」で行ってください。可能な限り小さなコードを書く。

+0

聞いてください!任意の与えられたウィンドウシステムのユーザは、彼らが慣れていたルックアンドフィール(および配置)を持っています。これを逸脱すると、必要なアクションをどのように実行するかを理解するのが難しくなり、アプリケーションの使用が難しくなります。そして、この答えが述べたとおり、コーディングとサポートの削減は常に良いことです。 –

+0

ありがとうございました。それは私には意味があり、これは私が上司に押し付けるものです。特別なボタンを使って "カスタムキャプション"をデザインしているグラフィックスアーティストは、高い天を叫ぶことはないと思います。 – JasonGenX

0

私は、アプリケーションのUIデザインに従うべきだと思います。この方法では、ツールのルックアンドフィールは他のオペレーティングシステムに似ています。通常、3つの主要なプラットフォームすべてで全く同じUIを使用してアプリケーションを作成すると、OSで動作している他のアプリケーションと同じように感じることはありません。

たとえば、アップルは独自のUIデザインに厳しいので、Macユーザーはツールが特定の方法で動作することを期待しています。

これはショートカットキーにも当てはまりますが、これはおそらく最も難しい部分です.OS X、Linux、Windowsはショートカットキーに独自のパターンがあり、適切な組み合わせを見つけることは必ずしも容易ではないためです。

1

私の提案は、各アプリを実行しているプラ​​ットフォームにネイティブに見えるようにすることです。その理由は単純です:理由のためにユーザーが特定のプラットフォームを選択する。彼または彼女はそれがどのように見え、働くのが好きです。

もちろん例外です。ウィンドウやダイアログ、多くのコントロールを使わないゲームのようなフルスクリーンのアプリでは、自分の料理を調理して、サポートされているすべてのプラットフォームで同じに見えるようにしても問題ありません。しかし、通常のウィンドウアプリケーションでは、ネイティブのUIガイドラインをよく守ってください。