1

パッチ (サウンド) 編集に使用されるモジュラー合成アプリ (Alsa Modular Synth、Pure Data、Ingen など) の GUI を書き始めようとしています。

私がする必要があるのは次のようなものです:

インゲン
(出典: drobilla.net )

純粋なデータ

Hallsymrk1?
(出典: mcgill.ca )

つまり、基本的には、ワイヤで接続できる入力ポートと出力ポートを備えたシンセモジュールを表すいくつかの長方形 (ボックス) を描くことができる領域です。

問題は、2 つの編集領域のウィジェットを作成する方法がわからないことです。ボックスを手動で描画する単純な 2D 描画コンテキストを使用することが、これを行う唯一の論理的な方法のようですが、これを行うと、すべてのウィジェットが失われます。 qt が提供する優れたイベント管理。

作成した「ボックス」の座標を取得して画面に配置するだけのカスタム レイアウトを作成して、ボックスを QWidget のサブクラスとして実装し (および qt のイベント処理システムを再利用)、追加する可能性があるかどうか疑問に思っています。いつものように窓に。

それとももっと良い方法がありますか?

ありがとうございました

4

3 に答える 3

2

Take a look at QGraphicsScene and QGraphicsView. This way you will be able to create a scene filled with items. Each item can receive mouse events and you can manually paint it.

于 2009-09-28T14:29:40.270 に答える
1

QLayout から継承するカスタム レイアウト クラスを作成し、add(QWidget* w) 関数を座標でオーバーロードできます。

個人的には QGraphicsView と QGraphicsScene を使っています。いくつかのイベントを (マウス イベントとして) 処理し、QGraphicsItem を簡単に見つけることができます。

于 2009-09-28T14:33:53.383 に答える
0

http://www.gephex.org/download.phpで Gephex のソースコードをご覧ください。

少し古いコード (QT3) でアプリケーション固有のものかもしれませんが、彼らはすでに Qt 用のウィジェットを作成しています。

チャオ

于 2010-06-22T15:00:30.547 に答える