8

今日、私はCocoaとMacOSX10.5で所有者が描いたメニュー項目のサポートを実装しようとしました

そして、他のプロジェクトで使用するつもりだったQTについて考えると、私が見つけたものはかなり怖かったです。

私がそれを正しく見れば、MacOSXでのQTの未来はありません。なぜなら、いくつかの些細な機能を実行するAppearance Manager全体が10.5で完全に非推奨になり(パブリックURLももう見つかりません)、さらには「開発者」の色ですリストとNSColorの色「定数」は、安定していないとマークされ、使用されません。

このポリシーでは、QTのようなツールキットにはオプションがなく、MacOSXサポートを削除します。これはAppleにとって複数の方法で意味があります(Nokiaは競合他社であることを忘れないでください)。そして、AppleはCarbonとJavaも削除することを気にしませんでした。

だから私は何かが恋しいですか。QTチームが合理的なフォールバックを使用できるココアアピアランスマネージャーやテクニックはありますか?10.7と10.8では見た目が大きく異なるのではないかと心配です。

そして、主観的なものとしてこの質問を閉じたいすべての人にお願いします。私がこの問題の解決策を回避する技術的な回避策を求めていることを考慮してください。それは良いか悪いかについての議論ではありませんが、この制限を回避する方法があるかどうか。

それは私にとって深刻なビジネス上の決定であり、間違って行われた場合、簡単に数万ドルの費用がかかる可能性があり、QTを信頼することは失敗であることが判明します。

編集:これは、システムカラーでさえサポートされなくなったことを示すリンクです 。システムカラーへのアクセス。また、テーマをグラファイトに変更しても、カラーリストの変更通知が表示されないのは正しいことです。

4

2 に答える 2

3

QTをネイティブに見せようと諦めました。クロスプラットフォームのツールキットではユーザーを騙すのに十分なほど模倣できない微妙な動作が多すぎるため、これは機能しません。ネイティブアプリケーションが目標である場合、サポートするプラットフォームのネイティブインターフェイスを作成するために少し余分な時間を費やす方がはるかに簡単です。

私がQTをダンプするのを妨げていたのは、XcodeとObjective-Cに慣れていないことでした。おそらくすでにこれを知っていますが、XcodeのObjective-C(.m)ファイルの名前を変更して、Objective-C ++(.mm)としてコンパイルできます。これにより、プロジェクト内の必要な場所に、必要なすべてのC++コードをリンクできます。

于 2010-08-17T19:18:20.480 に答える
0

Firefoxは、主にカカオベースであるため、多少同じボートに乗っています。彼らのOSXテーマエンジンの実装はここで見ることができます。

  1. http://mxr.mozilla.org/mozilla2.0/source/widget/src/cocoa/nsNativeThemeCocoa.mm
  2. http://mxr.mozilla.org/mozilla2.0/source/widget/src/cocoa/nsNativeThemeCocoa.h
  3. http://mxr.mozilla.org/mozilla2.0/source/gfx/cairo/cairo/src/cairo-quartz-surface.c

彼らは、Quartzの上に座っているCairo(プラットフォームニュートラルな描画API)に依存してレンダリングを行っています。

于 2010-08-19T12:41:46.733 に答える