PyQt5:拖拽功能Drag和amp;Drop
拖拽功能(Drag&Drop)
'''
步骤:
1、将控件A设置为可拖拽
A.setDragEnabled(True)
2、设置控件B的两个信号属性:
0)将控件B设置为接受其它地方拖拽过来的内容
self.setAcceptDrops(True)
1)拖动还没有放下时触发
def dragEnterEvent(self, event):
print(event)
# 若拖拽含有文本,则接受,否则忽略
if event.mimeData().hasText():
event.accept()
else:
event.ignore()
2)拖动放下时触发
def dropEvent(self,event):
self.addItem(event.mimeData().text())
'''
鼠标的动作:选择文本输入框中的文本,移动到下拉框中自动添加
代码示例
# -*- coding: utf-8 -*-
# @Time : 2023/1/6 16:19
# @File : DragDrop.py
'''
拖放 = 拖动 释放
'''
from PyQt5.QtWidgets import QComboBox, QWidget, QFormLayout, QLineEdit, QApplication, QLabel
class MyCombobox(QComboBox):
def __init__(self):
super(MyCombobox, self).__init__()
self.setAcceptDrops(True) # 设置B可接收拖拽属性
def dragEnterEvent(self, e): # 将A拖到B触发
print(e)
if e.mimeData().hasText():
e.accept()
else:
e.ignore()
def dropEvent(self, e): # 在B区域松下鼠标时A触发
self.addItem(e.mimeData().text()) # self指当前的下拉列表控件,得到一个文本输入框
class DragDropDemo(QWidget):
def __init__(self):
super(DragDropDemo, self).__init__()
formlayout = QFormLayout()
formlayout.addRow(QLabel('将lineEdit控件里的内容拖拽的下拉框combobox中')) # 添加一行,标签
linedit = QLineEdit()
linedit.setDragEnabled(True) # 设置A可拖动属性
combobox = MyCombobox()
formlayout.addRow(linedit, combobox)
self.setLayout(formlayout)
self.setWindowTitle('拖拽案例')
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
main = DragDropDemo()
main.show()
sys.exit(app.exec_())
运行结果
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhihefca
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
excel图片置于文字下方的方法
PHP中文网 06-27 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信提示登录环境异常是什么意思原因
PHP中文网 04-09 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
微信人名旁边有个图标有什么用
PHP中文网 03-11