时间:2021-05-22
本文是对《Python Qt GUI快速编程》的第10章的例子拖放用Python3+PyQt5进行改写,对图表列表,表格等进行相互拖放,基本原理雷同,均采用setAcceptDrops(True)和setDragEnabled(True)。
#!/usr/bin/env python3import osimport sysfrom PyQt5.QtCore import Qtfrom PyQt5.QtWidgets import (QApplication, QDialog, QHBoxLayout, QListWidget, QListWidgetItem, QSplitter, QTableWidget)from PyQt5.QtGui import QIconclass 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_()运行结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文分成两部分,第一部分通过python3+PyQt5实现自定义数据的拖放操作。第二部分则对第一部分的程序进行修改,增加拖放操作时,菜单提示是否移动或拷贝,还有
本文通过Python3+PyQt5实现《pythonQtGui快速编程》这本书13章文档打印功能。本文共通过三种方式:1、使用HTML和QTextDOcumen
本文通过python3+pyqt5改写实现了pythonQtgui编程变成15章的excise例子。#!/usr/bin/envpython3importosi
本文通过Python3+pyqt5实现了pythonQtGUI快速编程的16章的excise例子。#!/usr/bin/envpython3importrand
本文是对《PythonQtGUI快速编程》的第10章的例子events用Python3+PyQt5进行改写,涉及到重新实现QWidget的事件处理程序。本例子涉