python3+PyQt5实现拖放功能


Posted in Python onApril 24, 2018

本文是对《Python Qt GUI快速编程》的第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实现拖放功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之print详解
Sep 28 Python
Python安装模块的常见问题及解决方法
Feb 05 Python
Python实现发送与接收邮件的方法详解
Mar 28 Python
Python如何调用外部系统命令
Aug 07 Python
python图像处理模块Pillow的学习详解
Oct 09 Python
python 用 xlwings 库 生成图表的操作方法
Dec 22 Python
python构造IP报文实例
May 05 Python
使用Keras加载含有自定义层或函数的模型操作
Jun 10 Python
基于Python爬取51cto博客页面信息过程解析
Aug 25 Python
Python调用系统命令os.system()和os.popen()的实现
Dec 31 Python
python re.match()用法相关示例
Jan 27 Python
上手简单,功能强大的Python爬虫框架——feapder
Apr 27 Python
python3+PyQt5使用数据库表视图
Apr 24 #Python
python3+PyQt5使用数据库窗口视图
Apr 24 #Python
python下解压缩zip文件并删除文件的实例
Apr 24 #Python
python 删除指定时间间隔之前的文件实例
Apr 24 #Python
对python 各种删除文件失败的处理方式分享
Apr 24 #Python
Python向Excel中插入图片的简单实现方法
Apr 24 #Python
Python 通配符删除文件的实例
Apr 24 #Python
You might like
php初学者写及时补给skype用户充话费的小程序
2008/11/02 PHP
PHP版QQ互联OAuth示例代码分享
2015/07/05 PHP
PHP获取数组中单列值的方法
2017/06/10 PHP
表单类各种类型(文本框)失去焦点效果jquery代码
2013/04/26 Javascript
js获取url中指定参数值的示例代码
2013/12/14 Javascript
ActiveX控件与Javascript之间的交互示例
2014/06/04 Javascript
JavaScript中神奇的call()方法
2015/03/12 Javascript
JavaScript实现打字效果的方法
2015/07/10 Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
2015/09/14 Javascript
javascript多物体运动实现方法分析
2016/01/08 Javascript
javascript+css3 实现动态按钮菜单特效
2016/02/06 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
微信小程序(三):网络请求
2017/01/13 Javascript
bootstrap multiselect下拉列表功能
2017/08/22 Javascript
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
JS 中document.write()的用法和清空的原因浅析
2017/12/04 Javascript
使用vux实现上拉刷新功能遇到的坑
2018/02/08 Javascript
electron中使用bootstrap的示例代码
2018/11/06 Javascript
JS异步错误捕获的一些事小结
2019/04/26 Javascript
python使用正则表达式检测密码强度源码分享
2014/06/11 Python
对Python实现累加函数的方法详解
2019/01/23 Python
python selenium操作cookie的实现
2020/03/18 Python
美国特价机票专家:Airfarewatchdog
2018/01/24 全球购物
公司JAVA开发面试题
2015/04/02 面试题
介绍一下grep命令的使用
2012/06/28 面试题
医学院学生的自我评价分享
2013/11/19 职场文书
中专生职业生涯规划书范文
2014/01/10 职场文书
学习十八大宣传标语
2014/10/09 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
护士自荐信怎么写
2015/03/06 职场文书
建党伟业的观后感
2015/06/01 职场文书
2015年城管执法工作总结
2015/07/23 职场文书
辞职信怎么写?
2019/05/21 职场文书
创业计划书之废品回收
2019/09/26 职场文书
python周期任务调度工具Schedule使用详解
2021/11/23 Python
基于Python实现西西成语接龙小助手
2022/08/05 Golang