예제 소스코드 (*.py)
import sys from PyQt4 import QtGui, QtCore class testDialog(QtGui.QDialog): def __init__(self, parent=None): super(testDialog, self).__init__(parent) form = QtGui.QFormLayout() form.setHorizontalSpacing(0) self.myedit = QtGui.QLineEdit() self.myedit.setDragEnabled(True) self.myedit.setAcceptDrops(True) self.myedit.installEventFilter(self) form.addWidget(self.myedit) self.setLayout(form) self.setGeometry(300, 300, 400, 0) self.setWindowTitle('drop test') self.myedit.textChanged.connect(self.editchange) # new style signal slot connections @QtCore.pyqtSlot(str) # int represent the column value def editchange(self,data): print "editchange:", unicode(data) def eventFilter(self, object, event): if (object is self.myedit): if (event.type() == QtCore.QEvent.DragEnter): if event.mimeData().hasUrls(): event.accept() # must accept the dragEnterEvent or else the dropEvent can't occur !!! print "accept" else: event.ignore() print "ignore" if (event.type() == QtCore.QEvent.Drop): if event.mimeData().hasUrls(): # if file or link is dropped urlcount = len(event.mimeData().urls()) # count number of drops url = event.mimeData().urls()[0] # get first url object.setText(unicode(url.toLocalFile())) # assign first url to editline #event.accept() # doesnt appear to be needed return False # lets the event continue to the edit return False if __name__ == "__main__": app = QtGui.QApplication([]) dl = testDialog() dl.exec_() sys.exit(app.closeAllWindows())
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
10 | QML 및 Window 투명처리 | makersweb | 2015.04.22 | 4109 |
9 | [pyqt4]QTimer 예제 - 버튼을 누르면 3초후 함수 또는 메소드 호출 | makersweb | 2015.04.01 | 9821 |
8 | Python + QML with PyQt4 | makersweb | 2015.03.24 | 7967 |
7 | [PyQt4]개발 프로그램 버전표시 메세지 박스 | pjk | 2014.09.02 | 7757 |
6 | [PyQt4]여러가지 버튼 예제 | pjk | 2014.08.29 | 13895 |
5 | [PyQt4]스레드 및 ProgressBar 예제 코드 | pjk | 2014.08.26 | 8265 |
4 | [PyQt4]multiprocess 예제 코드 | pjk | 2014.08.26 | 8164 |
3 | [PyQt4]마우스 클릭 이벤트 예제 코드 | pjk | 2014.08.26 | 6789 |
» | [PyQt4]폴더 또는 파일을 드레그하여 그 경로를 LineEdit로 가져오기 | pjk | 2014.08.22 | 13554 |
1 | [PyQt4]윈도우창에 별 찍기 예제 | pjk | 2014.08.19 | 8143 |