回答:
A QWidgetはQtのすべての描画可能なクラスの基本クラスです。任意のQWidgetベースクラスは、それが親を持たないときにそれを示すことによって、ウィンドウとして表示することができます。
A QDialogはに基づいQWidgetていますが、ウィンドウとして表示されるように設計されています。これは常にウィンドウに表示され、ダイアログの一般的なボタン(承認、拒否など)とうまく機能する機能があります。
QMainWindowメインウィンドウの一般的なニーズに合わせて設計されています。メニューバー、ステータスバー、ツールバー、およびその他のウィジェットの定義済みの場所があります。ボタンのように、組み込みのアローアンスQDialogはありません。
QMainWindow基本クラスだけではなく使用することを検討している理由の1つQWidgetは、サポートはあるQMainWindowがQDockWidgetサポートQWidgetはしないということです