次の問題があります。 dropIndicatorPosition()の条件付きで、QAbstractItemView::BelowItem
またはQAbstractItemView::AboveItem
のいずれかを返すドロップイベントを完了しない場合、ドロップインジケーターが表示されないようにする必要があります。今私はQTreeWidget
をサブクラス化し、dropEvent
の次の実装を持っています。QTreeWidgetサブクラス化、指定した不要なdropIndicatorPositionのドロップインジケータの表示を停止
void SubClassedQTreeWidget::dropEvent(QDropEvent *event) {
DropIndicatorPosition position = dropIndicatorPosition();
if(position != QAbstractItemView::BelowItem && position != QAbstractItemView::AboveItem){
// exit since we don't care for other types of drop events
return;
}
QTreeWidget::dropEvent(event);
}
これは、ドロップが発生する可能性があることを視覚的に知らせるためです。私は間に黒い線が現れて欲しい。実際に何もしない、と私はいくつかの方法がどのような方法をドラッグして、すべてのロジックを実行する必要がないことを期待する
DropIndicatorPosition position = dropIndicatorPosition();
setDropIndicatorShown(!(position != QAbstractItemView::BelowItem && position != QAbstractItemView::AboveItem));
:私は、しかしを通じて動的にドロップインジケーターを設定し、再実装dragMoveEvent
を試してみました。
['showDropIndicator'](http://doc.qt.io/qt-5/qabstractitemview.html#showDropIndicator-prop)プロパティは、探しているプロパティですか?ただ単にそれを 'true'または' false'に設定してください。 –
@ G.M。ポスト全体を必ず読んでください。 'setDropIndicatorPosition'はこれを行います。ご覧のとおり、' dragMoveEvent'の内部では動作しません。私はそれが何もしないか、または論理を委任されていないすべてのドロップインジケータをオフにするように指定するべきです。 – snb