
예제 소스코드 (*.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 | 7859 |
| 9 | [pyqt4]QTimer 예제 - 버튼을 누르면 3초후 함수 또는 메소드 호출 | makersweb | 2015.04.01 | 13274 |
| 8 | Python + QML with PyQt4 | makersweb | 2015.03.24 | 14534 |
| 7 | [PyQt4]개발 프로그램 버전표시 메세지 박스 | pjk | 2014.09.02 | 16017 |
| 6 |
[PyQt4]여러가지 버튼 예제
| pjk | 2014.08.29 | 30747 |
| 5 |
[PyQt4]스레드 및 ProgressBar 예제 코드
| pjk | 2014.08.26 | 12021 |
| 4 | [PyQt4]multiprocess 예제 코드 | pjk | 2014.08.26 | 15901 |
| 3 | [PyQt4]마우스 클릭 이벤트 예제 코드 | pjk | 2014.08.26 | 14495 |
| » |
[PyQt4]폴더 또는 파일을 드레그하여 그 경로를 LineEdit로 가져오기
| pjk | 2014.08.22 | 18424 |
| 1 |
[PyQt4]윈도우창에 별 찍기 예제
| pjk | 2014.08.19 | 11426 |