2
當dragEnterEvent發生時,我需要停止QDrag。我想釋放QDrag而不釋放鼠標按鈕。手動停止QDrag
我試圖發送事件給QDrag沒有運氣。
QMouseEvent* evt = new QMouseEvent(QEvent::MouseButtonRelease,event->pos() ,Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
QCoreApplication::sendEvent(drag,evt);
如何實現這一目標?
更新: 我想在QDragEvent發生時釋放鼠標。
QMouseEvent* finishMoveEvent = new QMouseEvent (QEvent::MouseButtonRelease, event->pos(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
QTabBar::mouseReleaseEvent(finishMoveEvent);
qApp->sendEvent(parentWidget(),finishMoveEvent);
qApp->sendEvent(drag,finishMoveEvent);
qApp->postEvent(drag,finishMoveEvent,Qt::HighEventPriority);
我嘗試了所有可能的組合中的每一行。請幫忙。
如何在QDragEnterEvent期間釋放QDrag。
我正在嘗試像subime文本編輯器選項卡功能的東西。您可以撕開標籤,並在標籤欄上自動附加並開始移動標籤。希望這是有道理的。因此,如果QtabWidget在拖動qtabbar時將標籤撕掉,哪個小部件將獲取事件,以便我可以釋放qdrag事件。 – Yash
你可能更適合自己重新實現拖放機制。 'QDrag'有這個奇怪的同步接口(通過'exec()'),通常比它的價值更麻煩。 –
QDrag(在Windows中)exec也阻止了主要事件。我檢查了很多論壇,這是一個問題。 – Yash