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 相关文章推荐
python3.3教程之模拟百度登陆代码分享
Jan 16 Python
Python命令行参数解析模块getopt使用实例
Apr 13 Python
python使用socket向客户端发送数据的方法
Apr 29 Python
Python下载网络小说实例代码
Feb 03 Python
Python中elasticsearch插入和更新数据的实现方法
Apr 01 Python
详解从Django Allauth中进行登录改造小结
Dec 18 Python
python3下pygame如何实现显示中文
Jan 11 Python
django 将自带的数据库sqlite3改成mysql实例
Jul 09 Python
Python unittest如何生成HTMLTestRunner模块
Sep 08 Python
PyQt实现计数器的方法示例
Jan 18 Python
python 如何做一个识别率百分百的OCR
May 29 Python
实战Python爬虫爬取酷我音乐
Apr 11 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
简单的过滤字符串中的HTML标记
2006/12/25 PHP
PHP面向对象详解(三)
2015/12/07 PHP
PHP调用接口用post方法传送json数据的实例
2018/05/31 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
一款js和css代码压缩工具[附JAVA环境配置方法]
2010/04/16 Javascript
JavaScript类和继承 prototype属性
2010/09/03 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
checkbox全选所涉及到的知识点介绍
2013/12/31 Javascript
JS获取网页属性包括宽、高等等
2014/04/03 Javascript
node.js中的socket.io入门实例
2014/04/26 Javascript
JavaScript实现仿网易通行证表单验证
2015/05/25 Javascript
JavaScript数据结构之二叉树的计数算法示例
2017/04/13 Javascript
详解plotly.js 绘图库入门使用教程
2018/02/23 Javascript
JS实现仿微信支付弹窗功能
2018/06/25 Javascript
react-native动态切换tab组件的方法
2018/07/07 Javascript
浅谈微信小程序flex布局基础
2018/09/10 Javascript
对Vue.js之事件的绑定(v-on: 或者 @ )详解
2018/09/15 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
2020/10/18 Javascript
跟老齐学Python之??碌某?? target=
2014/09/12 Python
利用python实现逐步回归
2020/02/24 Python
python的reverse函数翻转结果为None的问题
2020/05/11 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
2020/11/17 Python
Python命令行参数定义及需要注意的地方
2020/11/30 Python
美国网上订购鲜花:FTD
2016/09/23 全球购物
丝芙兰意大利官方网站:Sephora.it
2019/12/13 全球购物
销售经理工作职责范文
2013/12/03 职场文书
保卫科工作岗位职责
2014/03/01 职场文书
《黄山奇石》教学反思
2014/04/19 职场文书
党员应该树立反腐倡廉的坚定意识思想汇报
2014/09/12 职场文书
销售工作决心书
2015/02/04 职场文书
银行实习推荐信
2015/03/27 职场文书
600字作文之感受大自然
2019/11/27 职场文书
一篇文章带你了解Python和Java的正则表达式对比
2021/09/15 Python
海贼王十大潜力果实,路飞仅排第十,第一可毁世界(震震果实)
2022/03/18 日漫
Golang 入门 之url 包
2022/05/04 Golang
Win11自动黑屏怎么办 Win11自动黑屏设置教程
2022/07/15 数码科技