2016-12-06 6 views
0

私はQListWidgetアイテムでいっぱいです。ドラッグ&ドロップをQListWidgetの関数に接続する最善の方法

アイテムの注文は、別のドキュメントクラスに保存されます。

アイテムの順序を変更したり変更したりすることができますが、QListWidgetの順序がドラッグ&のドロップで変更されるたびにドキュメントクラスを更新したいと思います。

これは抽象的アイデアである:

myListWidget::myListWidget(QWidget *parent) : QListWidget(parent) 
{ 
    /*option*/ connect(...); 
    /*option*/ setDragDropMode(QAbstractItemView::InternalMove); 
} 

void myListWidget::updateOrder() 
{ 
    for(i=0; i<count(); i++) { 
     ...function that updates the other class by QListWidget::item(int row) 
    } 
} 

は私がQListWidgetのためのドロップ信号がないことを見てきたので、私はを通じて、サブクラスモデルで信号を関連付けることを試みた:

connect(model(), SIGNAL(layoutChanged()), this, SLOT(updateOrder())); 

これはうまくいかなかった。

誰かが私の目標を達成する方法を提案できますか?

答えて

0

myListWidgetでdropEventを再実装しようとしましたか?

http://doc.qt.io/qt-5/qlistwidget.html#dropEvent

「ドラッグは、このウィジェットにドロップされたときに、このイベントハンドラが呼び出されます。イベントはイベントパラメータに渡されます。」

関連する問題