can you not use self.setAcceptDrops(True)
then something like:
def dragEnterEvent(self, event):
if event.mimeData().hasFormat("text/plain"):
event.acceptProposedAction()
def dropEvent(self, event):
textBrowser.setPlainText(event.mimeData().text())
mimeTypeCombo.clear()
mimeTypeCombo.addItems(event.mimeData().formats())
event.acceptProposedAction()
based off what I see so you could do something like:
import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QTextEdit, QVBoxLayout, QWidget, QComboBox, QLabel
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Whatever name you'd prefer")
self.setGeometry(100, 100, 500, 400)
central_widget = QWidget()
layout = QVBoxLayout(central_widget)
self.text_browser = QTextEdit()
self.text_browser.setReadOnly(True)
self.text_browser.setPlaceholderText("Drag and drop text here")
layout.addWidget(self.text_browser)
layout.addWidget(QLabel("MIME Types:"))
self.mime_type_combo = QComboBox()
layout.addWidget(self.mime_type_combo)
self.setCentralWidget(central_widget)
self.setAcceptDrops(True)
def dragEnterEvent(self, event):
if event.mimeData().hasFormat("text/plain"):
event.acceptProposedAction()
def dropEvent(self, event):
self.text_browser.setPlainText(event.mimeData().text())
self.mime_type_combo.clear()
self.mime_type_combo.addItems(event.mimeData().formats())
event.acceptProposedAction()
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())