web-dev-qa-db-ja.com

QtのクロスプラットフォームGUIはどれほど大きな問題ですか?

私はこのサイトで、QtのGUIがプログラマーによるQtの使用を妨げる大きな問題であると述べています。問題は、GUIがネイティブに見えず、一貫性がないということです。私は個人的にWindowsを使用しており、私が見ることができるもの(ツリービューとテーブルビューの一部)から見ると、かなり見栄えがよく、ネイティブのように見えます。だから私はそれらがMacでどのようなものか知りたいのですが、違いは何ですか?また、ユーザーエクスペリエンスの点で、通常のMacアプリと通常のWindowsアプリの間にはどのような違いがありますか?

6
Andy

GUIを備えたMacアプリケーションは通常、Objective-Cで記述され、AppKitを使用します。これにより、すべてのアプリケーションで一貫して類似したUIが提供されます(たとえば、ショートカットはどこでも同じで、同じコントロールは同じサイズで、ダイアログは同じです。メニューバーはすべてのアプリケーションで類似しています)。つまり、TextEditの使い方を知っていれば、TextMateの使い方も自動的にわかり、iTunesの使い方を知っていれば、iPhotoとApertureで簡単に見つけることができます。

Qtは、ネイティブではないコントロールを使用して、この一貫性を壊します。たとえば、シートではなくウィンドウを使用してエラーメッセージを表示したり、ウィンドウのタイトルバーにプロキシアイコンを使用しなかったり、誤って使用したりします。私はMacで1つのQtアプリを使用しています。これはDoxygenのGUIフロントエンドです。動作しますが、初めて開いたとき、いわゆる「Cocoa」アプリ(上記のAppKitを使用するアプリ)ではないことがすぐにわかりました。

両方のプラットフォームでGUIが一貫したクロスプラットフォームアプリを作成する場合は、各プラットフォームのGUIを書き換えます。同じバックエンドを使用できます。

WindowsとMac OS XのUIの正確な違いを知りたい場合は、ヒューマンインターフェイスのガイドラインを参照してください。 ( Mac OS X HIG および Windows UEIG 。)


tl; dr:コマンドラインツールのフロントエンドや単純な計算機などの小さなツールを作成している場合は、Qtを使用してください。 IDE、ターミナルエミュレータ、Twitterクライアントなどの大きなアプリケーションを作成している場合は、一貫性を保つために、すべてのプラットフォームのGUIを完全に書き直す必要があります。

4
rightfold

ウィンドウズではそれはネイティブです-テーマとすべて。多くのOSよりもネイティブで、いくつかの管理画面を掘り下げると、NTが表示されます。

Linuxでは、KDEのネイティブツールキットであり、Gnomeでは問題なく動作します。

Macを使用しないでください。ただし、Macユーザーは、Apple

3
Martin Beckett