私は C++ でいくつかの GUI API を学ぶことに興味があるので、どれが最適かを調べるためにたくさん検索しました。QtまたはWinAPIのいずれかになりました。Qt の方が使いやすいが、WinAPI を使用するとすべてを制御できるという人もいました。議論が進み、誰かが、それは公正な交換であり、コントロールの小さな部分であり、より簡単になる可能性があると言った. 今知りたいのですが、Qt を選択したときに失ったものは何ですか? システムとの相互作用ですか?Qt ではできなくて、WinAPI でできることは何ですか?
2 に答える
ここではリンゴとオレンジを比較しています。Qt は、GUI の実装を支援するために設計された C++ クラス ライブラリであり、クロスプラットフォームです。コードを再コンパイルして、さまざまなオペレーティング システムで実行できます。winapi は、Windows でオペレーティング システムの呼び出しを行うための低レベルの C ベースの API です。winapi だけを使用して GUI アプリを作成することもできます。winapi のみを使用する "Hello world" アプリは、数百行のコードで簡単に作成できます。
winapi だけを使用して GUI を実装することを考えないでください。それを正しく行う方法を学ぶのに数か月を費やした後、それを深く後悔するでしょう。この作業を簡素化するためのツールは数多くあります。Qt はその 1 つに過ぎず、C++ 言語だけに限定されているわけではありません。もちろん、Qt がクロスプラットフォームであるという事実は、特定の Windows 固有の機能が Qt で直接サポートされていないか、まったくサポートされていないことを意味します。ただし、必要に応じて winapi にフォールバックするオプションがあります。クロスプラットフォームのサポートをあきらめるという犠牲を払って。
The most "heavy weight" things Qt looses are the Shell API, the DWM and the Ribbon UI. There are more, like the compression API.
However, it is fairly easy to write your own Qt style interfaces to those APIs.
Best regards