回答:
私はいくつかのGUIライブラリを一般化していますが、非常に高いレベルで理解する必要がある最も重要な概念は、GUIがイベント駆動型であることです。
コンソールアプリケーションでは、ユーザー入力は通常、定義した特定のポイントで発生します。ユーザーにプロンプトを表示し、ユーザーの入力を待ち、その入力に基づいて何かを計算します。主な違いの1つは、入力が1か所でのみ発生し、コマンドライン(stdin
C ++)からテキストを読み取ることです。
GUIアプリケーションでは、通常、さまざまなアクションを実行するボタンやテキストフィールドなど、入力が発生する可能性のある複数の場所があります。ここがイベントの出番です。たとえば、ボタンをクリックするとイベントがトリガーされます。このイベントは、通常イベントハンドラーによって処理される必要があります。通常、イベントハンドラーは、イベントオブジェクトを受け取り、イベントイベントが発生したときに呼び出されるメソッドです。ボタンはイベントハンドラーをどのように知っていますか?あなたは通常購読します(またはそれを聴きます)。
以下は「C ++に触発された」例です。これは実際のQTまたはC ++コードではありません。
class MyClickHandler : public ClickListener{
void clickHandler(ClickEvent e){
showAlertBox("The button "+e.getSource().getName()+" has been clicked");
}
};
ボタンを作成するときに、ボタンに対してMyClickHandlerクラスのインスタンスを登録します。
...
MyClickHandler handler();
Button b("Save");
b.registerListener(handler);
...
これで、ボタンb
がクリックされるたびに、「保存ボタンがクリックされました」というメッセージボックスが表示されます。
GUIアプリケーションには2つの段階があることを想像できます。
これは非常に簡単な例ですが、ボタンをクリックしたときにメッセージボックスを表示してみることをお勧めします。
フレームワークには、それらの多くがあります:C ++の場合、おそらくQtをお勧めします。
最後のアドバイス:バックグラウンドで何が起こっているかを本当に知るまで、GUIデザイナーに近づかないでください。簡単な例をいくつか作成し、最初にイベントループを理解してから、より複雑なレイアウトに移ることはそれほど難しくありません。
これで、GUIプログラミングを学ぶのにこれまでと同じくらい良い時間です。C ++をご存知のように、QTをご覧になることをお勧めします。優れたドキュメンテーション、巨大なユーザーベース、多くの例/チュートリアルから学ぶことができます。
Microsoft Visual Studio C ++ Expressから始めることもできます。IDEは非常にフレンドリーで使いやすい(そして無料です!)、最初のGUIアプリケーションを非常に迅速に作成できるようになります...これは、イベント駆動型プログラミングの基礎、異なるアプローチの理解に集中するのに役立ちますあなたが習得する必要があること。
WPF駆動型アプリケーションの構築から直接始めることもできますが、最初はWindows Formsから始めます。これは、MicrosoftのWindows Forms APIを備えた基本的なC ++であるため、把握しにくい技術の1つです。
StackOverflowに適した、おそらくc ++とタグ付けされた; とにかく。
これらのいくつかをグーグルで調べてください。Qt、WxWidgets、TheForgersのWinApi、Fltk ...
特にC ++を既に知っている場合は、GUIを使用するのはそれほど難しくありません。私が考えるWxWidgetsを使用してください。Qtは1か月の学習には少し複雑すぎます。数時間でWxを入手できます。