0

QListWidgetがあり、ドロップを受け入れるように設定し、モードをDragDropにするなど、QListWidgetItemsを場所全体(もちろんQListWidget内)に移動できます。

私はこの動作が好きで、そのままにしておきたいのですが、QListWidgetがQTreeWidgetからのドロップも受け入れるようにしたいのです。QListWidgetのdropEvent()を再実装しようとすると、デフォルトの動作が失われます。

現在の動作を拡張して、listwidgetアイテム間のドラッグドロップとtreewidgetからlistwidgetへのドラッグドロップの両方を行う方法はありますか、またはdropEvent()の再実装で両方の動作を完全に書き直す必要がありますか?

答えてくれてありがとう:)

4

2 に答える 2

2

ふたつのやり方:

  1. スタンドアロンのイベントフィルターを実装し、それに基づいて動作させますQEvent::Drop。元のQListWidgetにインストールします。後で元のハンドラーが呼び出されるようにfalseを返します。dropEvent()

  2. から継承しQListWidget、再実装dropEvent(evt)し、最後のステートメントとして、を呼び出しますQListWidget::dropEvent(evt);。元の動作は保持されます。

于 2012-09-12T13:08:39.943 に答える
1

いいえ。

サブクラスQListWidget、再実装

virtual void    QListWidget::dropEvent ( QDropEvent * event )

明示的に呼び出す

QListWidget::dropEvent(event);

デフォルトの動作が必要なときはいつでも。

派生クラス関数から親クラス関数を呼び出す方法は?

于 2012-09-12T13:03:09.753 に答える