Advertisement
Guest User

#1ZJawRfo (Python)

a guest
Oct 18th, 2022
338
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.89 KB | None | 0 0
  1. import sys
  2.  
  3. from PySide2 import QtGui
  4. from PySide2.QtCore import Qt, QUrl
  5. from PySide2.QtWidgets import (
  6.     QApplication,
  7.     QListWidget,
  8.     QListWidgetItem,
  9.     QMainWindow,
  10.     QPushButton,
  11. )
  12.  
  13.  
  14. class ListBoxWidget(QListWidget):
  15.     def __init__(self, parent=None):
  16.         super().__init__(parent)
  17.         self.setAcceptDrops(True)
  18.         self.resize(600, 600)
  19.  
  20.     def dragEnterEvent(self, event: QtGui.QDragEnterEvent):
  21.         mimedata = event.mimeData()
  22.         if not mimedata.hasUrls():
  23.             event.ignore()
  24.             return
  25.  
  26.         event.accept()
  27.  
  28.     def dragMoveEvent(self, event: QtGui.QDragMoveEvent):
  29.         mimedata = event.mimeData()
  30.         if not mimedata.hasUrls():
  31.             event.ignore()
  32.             return
  33.         event.setDropAction(Qt.CopyAction)
  34.         event.accept()
  35.  
  36.     def dropEvent(self, event: QtGui.QDropEvent):
  37.         mimedata = event.mimeData()
  38.         if not mimedata.hasUrls():
  39.             event.ignore()
  40.             return
  41.  
  42.         event.setDropAction(Qt.CopyAction)
  43.         event.accept()
  44.  
  45.         def to_local_string(url: QUrl) -> str:
  46.             return url.toLocalFile() if url.isLocalFile() else url.toString()
  47.  
  48.         self.addItems([to_local_string(url) for url in mimedata.urls()])
  49.  
  50.  
  51. class AppDemo(QMainWindow):
  52.     def __init__(self):
  53.         super().__init__()
  54.         self.resize(1200, 600)
  55.  
  56.         self.listbox_view = ListBoxWidget(self)
  57.  
  58.         self.btn = QPushButton("Get Value", self)
  59.         self.btn.setGeometry(850, 400, 200, 50)
  60.         self.btn.clicked.connect(lambda: print(self.getSelectedItem()))
  61.  
  62.     def getSelectedItem(self):
  63.         item = QListWidgetItem(self.listbox_view.currentItem())
  64.         return item.text()
  65.  
  66.  
  67. def main():
  68.     app = QApplication(sys.argv)
  69.  
  70.     demo = AppDemo()
  71.     demo.show()
  72.  
  73.     sys.exit(app.exec_())
  74.  
  75.  
  76. if __name__ == "__main__":
  77.     main()
  78.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement