Maison > développement back-end > Tutoriel Python > python3+PyQt5 implémente la fonction glisser-déposer

python3+PyQt5 implémente la fonction glisser-déposer

不言
Libérer: 2018-04-24 11:46:45
original
3401 Les gens l'ont consulté

Cet article présente principalement en détail la fonction glisser-déposer de python3+PyQt5, qui a une certaine valeur de référence. Les amis intéressés peuvent s'y référer

Cet article est une revue de "Python Qt GUI Rapid. Programmation" "L'exemple de glisser-déposer du chapitre 10 est réécrit en utilisant Python3+PyQt5. Les listes de graphiques, les tableaux, etc. sont glissés et déposés les uns avec les autres. Les principes de base sont les mêmes, et setAcceptDrops(True) et setDragEnabled(. Vrai) sont utilisés.

#!/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_()
Copier après la connexion

Résultats en cours d'exécution :

Recommandations associées :

Explication détaillée de la vue personnalisée python3+PyQt5

python3+PyQt5 implémente l'histogramme

python3+PyQt5 implémente l'impression de documents Fonction

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal