PyQt5 자습서 10121 ~ 드래그 앤 드롭 시작

개시하다
PyQt5에서 드래그 앤 드롭
드래그 앤 드롭 기능은 사용자에게 직관적이고 사용하기 쉽기 때문에 대부분의 데스크톱 응용 프로그램에 기능을 제공합니다.
4QDrag반을 이용하면 그렇게 할 수 있을 것 같아요.
데모
drag_drop.py
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class combo(QComboBox):
   def __init__(self, title, parent):
      super(combo, self).__init__( parent)
      self.setAcceptDrops(True)

   def dragEnterEvent(self, e):
      print (e)

      if e.mimeData().hasText():
         e.accept()
      else:
         e.ignore()

   def dropEvent(self, e):
      self.addItem(e.mimeData().text())

class Example(QWidget):
   def __init__(self):
      super(Example, self).__init__()

      self.initUI()

   def initUI(self):
      lo = QFormLayout()
      lo.addRow(QLabel("Type some text in textbox and drag it into combo box"))

      edit = QLineEdit()
      edit.setDragEnabled(True)
      com = combo("Button", self)
      lo.addRow(edit,com)
      self.setLayout(lo)
      self.setWindowTitle('Simple drag and drop')
def main():
   app = QApplication(sys.argv)
   ex = Example()
   ex.show()
   app.exec_()

if __name__ == '__main__':
   main()
실행하면 다음 창이 표시됩니다.

문자를 선택하고 input 상자에 끌어다 놓으면 문자가 표시됩니다.

참고 자료

좋은 웹페이지 즐겨찾기