QListWidgetにテクスチャアセットなどのライブラリがあります。私は、私の場合、MayaのQApplicationにウィジェットのドラッグアンドドロップを有効にしたいと考えています。 dropEventをMayaに接続すると、mayaは何かが削除されたことを登録しますか? 誰かが私を正しい方向に向けることができますか?QWidgetをMayaにドラッグ&ドロップする
0
A
答えて
0
いくつかの深刻な試行錯誤で、私は実際にはかなり正直な解決策を見つけました。そのほとんどがケースです。 主なものは、私のケースのメインアプリでイベントを登録することです。
main_win = mhelper.getQMayaMainWindow()
main_win.installEventFilter(drop_filter)
し、私が呼び出されているイベントをチェックする必要があるイベントフィルタに:
def eventFilter(self, obj, event):
self.obj = obj
if event.type() is event.DragEnter:
self.mouse_button = QtGui.QApplication.mouseButtons()
event.accept()
if event.type() is event.Drop:
library_w = event.source()
if self.mouse_button == QtCore.Qt.LeftButton:
....
0
私はあなたが正しくあなたのMayaのメインウィンドウのイベントをドロップ扱うことができると思いますが、一つのことはありません確信している、あなたはすべてQtWidgetでそれを行うことができます。私の場合は、メインウィンドウでqtを実行しました。
class Droper(QtGui.QMainWindow):
def __init__(self, parent=None):
super(Droper, self).__init__(parent)
self.setAcceptDrops(True) # Very important
def dragEnterEvent(self, event):
"""
The event called when the user drag elements over the drop place
"""
if event.mimeData().hasUrls:
event.accept()
else:
event.ignore()
print "We don't want this !"
def dropEvent(self, event):
"""
The event called when the user drops its elements
Only if dragEnterEvent accept the event
"""
for url in event.mimeData().urls():
print url
あなたのウィジェットでacceptDropsを有効にする必要があります。あなたは直接Qt Designerのプロパティでそれを行うことができます。また、使用するイベントを定義する必要があります。QWidget.dragEnterEventを参照すると、4つのドラッグアンドドロップイベントが表示されます。
あなたのお手伝いをしたいと思っていますが、その実装方法がわからない場合は質問してください。
関連する問題
- 1. ドラッグ&ドロップ:ドロップは
- 2. GWT-ドラッグ&ドロップ(ドラッグ&ドロップ)レイアウトの質問
- 3. checkedlistboxにドラッグ&ドロップする
- 4. QTでのQWidgetのドラッグ5
- 5. フォルダをドラッグ&ドロップする
- 6. RESTfulサービスをドラッグ&ドロップする
- 7. アップロードプラグインをドラッグ&ドロップする
- 8. カスタムオブジェクトをドラッグ&ドロップする
- 9. JSコンポーネントをドラッグ&ドロップする
- 10. jQueryハイライトボックスにドラッグ&ドロップ
- 11. ドラッグ&ドロップは、Vaadinに
- 12. ドラッグ&ドロップ:ドラッグ可能にドロップ可能に追加
- 13. ドラッグ&ドロップによるHtmlファイルアップロードファイル
- 14. スイングでドラッグ&ドロップ
- 15. ドラッグ&ドロップ - DataTransferオブジェクト
- 16. ドラッグ&ドロップのオプション
- 17. ドラッグ&ドロップでテキストボックス
- 18. dojotoolkitのドラッグ&ドロップ
- 19. ドラッグ&ドロップajaxファイルアップロード
- 20. レクリエーションのドラッグ&ドロップ
- 21. WPF HwndHostドラッグ&ドロップ
- 22. ドラッグ&ドロップでテキストボックス
- 23. ドラッグ&ドロップでframeLayout
- 24. ドラッグ&ドロップとマウスイベント
- 25. ドラッグ&ドロップ - ActionScript3
- 26. iPhoneのドラッグ/ドロップ
- 27. Dojoドラッグ・アンド・ドロップ
- 28. 角4ドラッグ&ドロップ
- 29. ドラッグ&ドロップ何か
- 30. ドラッグ&ドロップRealmResults
私はあなたの質問をはっきりと理解できません。どこでドロップイベントをアクティブにしますか?あなたのQListWidgetまたはMayaのメインウィンドウで? QListWidgetからテクスチャサムネイルをドラッグしてMayaのビューポートにドロップしますか? – DrHaze
はい、私は多くのlistWidgetItems(hdrsなどのサムネイルなど)を持つライブラリウィンドウを持っています。 mayasウィンドウにドラッグアンドドロップすると、ドロップが登録されます。そして、私は機能を実行することができます。 IESのライトプロファイル、HDRライトテクスチャをマヤに落として、適切な接続などで光を生成するという計画です。 – arvidurs