이 글은 주로 python3+PyQt5의 드래그 앤 드롭 기능을 모든 사람에게 자세히 소개합니다. 관심 있는 친구들이 참고할 수 있습니다.
이 글은 "Python Qt GUI Rapid 프로그래밍"의 10장에 대한 리뷰입니다. 예제 드래그 앤 드롭은 Python3+PyQt5를 사용하여 다시 작성됩니다. 차트 목록, 테이블 등은 서로 드래그 앤 드롭되며, setAcceptDrops(True) 및 setDragEnabled(True)가 사용됩니다.
#!/usr/bin/env python3 import os import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import (QApplication, QDialog, QHBoxLayout, QListWidget, QListWidgetItem, QSplitter, QTableWidget) from PyQt5.QtGui import QIcon class Form(QDialog): def __init__(self, parent=None): super(Form, self).__init__(parent) listWidget = QListWidget() listWidget.setAcceptDrops(True) listWidget.setDragEnabled(True) path = os.path.dirname(__file__) for image in sorted(os.listdir(os.path.join(path, "images"))): if image.endswith(".png"): item = QListWidgetItem(image.split(".")[0].capitalize()) item.setIcon(QIcon(os.path.join(path, "images/{0}".format(image)))) listWidget.addItem(item) iconListWidget = QListWidget() iconListWidget.setAcceptDrops(True) iconListWidget.setDragEnabled(True) iconListWidget.setViewMode(QListWidget.IconMode) tableWidget = QTableWidget() tableWidget.setRowCount(5) tableWidget.setColumnCount(2) tableWidget.setHorizontalHeaderLabels(["Column #1", "Column #2"]) tableWidget.setAcceptDrops(True) tableWidget.setDragEnabled(True) splitter = QSplitter(Qt.Horizontal) splitter.addWidget(listWidget) splitter.addWidget(iconListWidget) splitter.addWidget(tableWidget) layout = QHBoxLayout() layout.addWidget(splitter) self.setLayout(layout) self.setWindowTitle("Drag and Drop") if __name__ == "__main__": app = QApplication(sys.argv) form = Form() form.show() app.exec_()
실행 결과:
관련 권장 사항:
python3+PyQt5 사용자 정의 뷰에 대한 자세한 설명
python3+PyQt5는 문서를 실현합니다. 인쇄 기능
위 내용은 python3+PyQt5는 드래그 앤 드롭 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!