Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- from PySide2 import QtGui
- from PySide2.QtCore import Qt, QUrl
- from PySide2.QtWidgets import (
- QApplication,
- QListWidget,
- QListWidgetItem,
- QMainWindow,
- QPushButton,
- )
- class ListBoxWidget(QListWidget):
- def __init__(self, parent=None):
- super().__init__(parent)
- self.setAcceptDrops(True)
- self.resize(600, 600)
- def dragEnterEvent(self, event: QtGui.QDragEnterEvent):
- mimedata = event.mimeData()
- if not mimedata.hasUrls():
- event.ignore()
- return
- event.accept()
- def dragMoveEvent(self, event: QtGui.QDragMoveEvent):
- mimedata = event.mimeData()
- if not mimedata.hasUrls():
- event.ignore()
- return
- event.setDropAction(Qt.CopyAction)
- event.accept()
- def dropEvent(self, event: QtGui.QDropEvent):
- mimedata = event.mimeData()
- if not mimedata.hasUrls():
- event.ignore()
- return
- event.setDropAction(Qt.CopyAction)
- event.accept()
- def to_local_string(url: QUrl) -> str:
- return url.toLocalFile() if url.isLocalFile() else url.toString()
- self.addItems([to_local_string(url) for url in mimedata.urls()])
- class AppDemo(QMainWindow):
- def __init__(self):
- super().__init__()
- self.resize(1200, 600)
- self.listbox_view = ListBoxWidget(self)
- self.btn = QPushButton("Get Value", self)
- self.btn.setGeometry(850, 400, 200, 50)
- self.btn.clicked.connect(lambda: print(self.getSelectedItem()))
- def getSelectedItem(self):
- item = QListWidgetItem(self.listbox_view.currentItem())
- return item.text()
- def main():
- app = QApplication(sys.argv)
- demo = AppDemo()
- demo.show()
- sys.exit(app.exec_())
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement