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实现获取命令行输出结果的方法
Jun 10 Python
python使用logging模块发送邮件代码示例
Jan 18 Python
Flask框架URL管理操作示例【基于@app.route】
Jul 23 Python
VSCode Python开发环境配置的详细步骤
Feb 22 Python
Python调用百度根据经纬度查询地址的示例代码
Jul 07 Python
softmax及python实现过程解析
Sep 30 Python
基于Python和PyYAML读取yaml配置文件数据
Jan 13 Python
django项目中新增app的2种实现方法
Apr 01 Python
Python web如何在IIS发布应用过程解析
May 27 Python
Python docutils文档编译过程方法解析
Jun 23 Python
详细介绍python类及类的用法
May 31 Python
使用python绘制分组对比柱状图
Apr 21 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下实现伪 url 的超简单方法[转]
2007/09/24 PHP
php下关于Cannot use a scalar value as an array的解决办法
2010/08/08 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
2019/10/12 PHP
PHP常用字符串函数用法实例总结
2020/06/04 PHP
不用锚点也可以平滑滚动到页面的指定位置实现代码
2013/05/08 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
2014/07/01 Javascript
浅谈 javascript 事件处理
2015/01/04 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
jQuery实现径向动画菜单效果
2015/07/17 Javascript
js+css实现文字散开重组动画特效代码分享
2015/08/21 Javascript
Three.js学习之正交投影照相机
2016/08/01 Javascript
JavaScript中数据类型转换总结
2016/12/25 Javascript
JavaScript仿聊天室聊天记录
2016/12/27 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
2018/09/30 Javascript
ajax与jsonp的区别及用法
2018/10/16 Javascript
es6基础学习之解构赋值
2018/12/10 Javascript
Vue表单控件绑定图文详解
2019/02/11 Javascript
React-redux实现小案例(todolist)的过程
2019/09/29 Javascript
微信小程序地图实现展示线路
2020/07/29 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
详解JavaScript 高阶函数
2020/09/14 Javascript
Python解析Excle文件中的数据方法
2018/10/23 Python
Python下应用opencv 实现人脸检测功能
2019/10/24 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
伊莱克斯阿根廷网上商店:Tienda Electrolux
2021/03/08 全球购物
药物学专业学生的自我评价
2013/10/27 职场文书
十八大感想感言
2014/02/10 职场文书
幼儿教师寄语集锦
2014/04/03 职场文书
主题教育活动总结
2014/05/05 职场文书
班级学雷锋活动总结
2014/06/26 职场文书
2014年大学生党员评议表自我评价
2014/09/20 职场文书
人民调解协议书范本
2014/10/11 职场文书
邓小平文选读书笔记
2015/06/29 职场文书
2015中秋节晚会主持词
2015/07/01 职场文书
Win10 heic文件怎么打开 ? Win10 heic文件打开教程
2022/04/06 数码科技
vue/cli 配置动态代理无需重启服务的方法
2022/05/20 Vue.js