2016-05-17 3 views
0

いくつかのテキストをpyQTのTextEditフォームMS WordまたはWebページ、またはいくつかの単語がある場所にドラッグしたいと思います。pyQTの他の場所からドラッグしたテキストを取得するには?

私のキーコードはここにある:

self.inputBox = QtWidgets.QTextEdit(xxxx) 
    self.inputBox.dragEnterEvent = self.onDragEnter 

    def onDragEnter(self, event): 
     content = self.inputBox.toPlainText() 
     print(content) 
     print(123) 

私はテキストエディットにいくつかの単語をドラッグしている間、それはonDragEnterメソッドが呼び出されていることを意味して、コンソールは、123を印刷します。しかし、私がドラッグしたテキストは決してコンソールに印刷されませんでした。

私のコードで何が間違っていますか?そして、私が望むことができるようにコードを変更する方法は?

答えて

0

一般的に、あなたはあなたにドラッグアンドドロップのサポートを追加したいウィジェットをサブクラス化しdragEnterEventdragMoveEventdragLeaveEvent、およびdropEventメソッドを再実装します。多くのウィジェットは既にQTextEditを含むドラッグ&ドロップをサポートしています。 acceptDrops()がTrue(既定値)の場合は、既に動作しているようなドラッグアンドドロップが可能です。しかし、手動でやりたいのであれば、

def dragEnterEvent(self, event): 
    if event.mimeData().hasText(): 
     event.accept() 
    else: 
     event.ignore() 

def dropEvent(self, event): 
    if event.mimeData().hasText(): 
     text = event.mimeData().text() 
     self.insertPlainText(text) 
+0

ありがとう、私は後で試してみます。それが動作すれば、私はあなたのために戻ってupvote来るでしょう。 – Kingname

+0

こんにちは、それは動作しません。 myEdit(QtWidgets.QTextEdit)というクラスを定義し、コードをクラスに配置しますが、どうすれば使用できますか? – Kingname

+0

私はウィジェットにいくつかのテキストをドラッグする間、それはエラーまたは例外なしでそれ自身で閉じるでしょう。 – Kingname

関連する問題