-
Notifications
You must be signed in to change notification settings - Fork 0
/
Drop_Tree_Widget.py
50 lines (42 loc) · 1.39 KB
/
Drop_Tree_Widget.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@Author Fivethousand
@Date 2021/5/8 14:43
@Describe
@Version 1.0
"""
from PyQt5.QtCore import QDir
from PyQt5.QtWidgets import QMainWindow, QMenu, QTreeWidgetItem, QLabel, QSizePolicy, QTreeWidget, QTreeView, QFileDialog, QWidget, QFileSystemModel, QAbstractItemView
from PyQt5 import QtCore
from PyQt5 import QtWidgets
import sys
class Drop_Tree_Widget(QTreeView):
"""
1)inherit QTreeWidget
2)Users could drop a file onto the Widget and then the file would be read
"""
file_text_signal = QtCore.pyqtSignal(str)
def __init__(self,parent=None):
super(Drop_Tree_Widget, self).__init__(parent)
self.setSelectionMode(self.SingleSelection)
self.setDragDropMode(QAbstractItemView.InternalMove)
self.setDragEnabled(True)
self.setAcceptDrops(True)
self.setDropIndicatorShown(True)
def dragEnterEvent(self, e):
# if e.mimeData().hasFormat('text/plain'):
# e.accept()
# else:
# e.ignore()
e.accept()
def dropEvent(self, e):
self.text = e.mimeData().text()
self.text = self.text.replace("file:///", "")
print(self.text)
self.file_text_signal.emit(self.text)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
gui = Drop_Tree_Widget()
gui.show()
sys.exit(app.exec_())