设置控件的拖拽动作
如果需要将A控件拖拽到B控件,需要:
设置A为可拖拽:A.setDragEnabled(True)
;
设置B为可接受拖拽:B.setAcceptDrops(True)
;
B需要两个事件:
dragEnterEvent
:将A拖到B时自动触发。(拖进来以后,还没松鼠标)dropEvent
:放下A时自动触发。(放下鼠标)
import sys,math
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
# 继承一个下拉列表控件,扩展其功能
class MyComboBox(QComboBox):
def __init__(self):
super(MyComboBox, self).__init__()
# 使我们定义的下拉列表的扩展控件允许接收拖来的信息
self.setAcceptDrops(True)
# 拖进来(鼠标还没松开)时dragEnterEvent事件自动触发
def dragEnterEvent(self, event):
print("触发dragEnterEvent事件")
# 此案例中,下拉列表只允许接收文本信息
# event.mimeData().hasText()判断触发事件中是否含有文本
# 如果有,则event.acce