python3+PyQt5实现拖放
来源:互联网 发布:python用turtle画椭圆 编辑:程序博客网 时间:2024/05/13 21:12
本文是对《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_()
运行结果:
0 0
- python3+PyQt5实现拖放
- python3+PyQt5 重新实现自定义数据拖放处理
- python3+PyQt5
- python3+PyQt5+Qt Designer实现扩展对话框
- python3+PyQt5实现窗口切分条
- python3+PyQt5 实现文档打印功能
- python3+PyQt5+Qt Designer实现扩展对话框
- PyQt5初级教程--PyQt5中的拖放[10/13]
- PyQt5教程-20-拖放事件
- python3+PyQt5+Qt Designer实现Tab标签页部件
- python3+PyQt5+Qt Designer实现堆叠窗口部件
- python3+PyQt5 实现单文档界面(SDI)
- python3+PyQt5 实现多文档界面(MDI)
- python3+PyQt5 实现Tab标签页式编辑器
- python3+PyQt5 重新实现QT事件处理程序
- python3+PyQt5实现使用剪贴板做复制与粘帖
- python3+PyQt5 实现自定义窗口部件--分数滑块
- python3+PyQt5 实现自定义窗口部件--流体混合窗口部件
- nginx环境搭建及相关命令
- 单片机2402存储多个数
- Hadoop YARN新特性—label based scheduling
- AOP入门介绍
- 单片机lcd时钟
- python3+PyQt5实现拖放
- MXNet_Windows 学习笔记
- 微信退款和支付宝退款接口调用(java版)
- Ubuntu下开启apache的Rewrite模块
- 斐波那契数列
- 解析html富文本
- [Codeforces Round #286 DIV1C (CF506C)] Mr. Kitayuta vs. Bamboos
- 大数据集群安装(一)
- C#面试题