QtやGTK+などのフレームワークは、エディットボックスやコンボボックスなどの標準的なユーザーコントロールを開発者に提供します。しかし、多くのGUIアプリケーションには、より複雑なユーザーコントロールがあります。たとえば、テキストエディタには、ユーザーがテキストを入力したり、画像や表を挿入したりできる領域があります。オーディオエディタは通常、オーディオトラックやボリュームインジケーターなどの波形を表示します。私の質問は、そのようなコントロールがどのように描画されるかです。さらに、これらのコントロールは通常、イベントを処理できます。たとえば、テキストエディタのテーブルを選択したり、マウスの右ボタンをクリックするとコンテキストメニューがポップアップ表示されたりします。したがって、問題はこれらのコントロールを描画するだけでなく、コントロールを処理させることでもあります。イベント。CanvasまたはOpenGLを使用することしか考えていませんが、イベント処理を実装するのは難しいと思います。たぶん、ユーザーインターフェイスを描くためのもっと簡単な方法がありますか?
質問する
125 次
1 に答える
1
これはかなりあいまいな質問なので、これはややあいまいな答えになります。一般に、この作業のほとんどはすでに完了しています。たとえば、Qt には既にテキスト ビュー クラス、イメージ クラス、およびテーブル クラスがあります (私は Qt の経験があまりなく、知っている一般的なことから始めただけです)。あなたが話しているテキストエディターの場合、画像のドラッグを受け入れて描画できるハンドラーを持つQtテキスト編集ウィジェットからクラスを派生させることができます。繰り返しになりますが、Qt には、画像を描画し、あらゆる種類の描画を行うためのコードが既に含まれています。
オーディオ波形を描画するには、サンプリング間隔ごとに垂直線を描画してそのボリュームまたは振幅を表すある種のボックスまたはウィジェット (一般的に言えば) を用意します。
はい、OpenGL は、ここで話していることに対してやり過ぎです。なぜなら、ほとんどの GUI フレームワークがそれを行うのに対し、何らかの方法で独自のイベント処理を作成する必要があるからです。あいまいな質問に対するあいまいな回答ですが、お役に立てば幸いです。
于 2013-01-23T19:47:34.593 に答える