我有一个继承自QWidget的类:
from PyQt5.QtWidgets import *
class Widget(QWidget):
def __init__(self, layoutname: str, width: int, height: int ) -> None:
"""
Constructor, pass 0 to width and/or height if you want them to be defaults given at runtime
:param layoutname: Layout, a Layout object will be built according to the class name passed
:param width: int, width of the widget
:param height: int, height of the widget
"""
super(QWidget, self).__init__()
if width != 0:
self.setFixedWidth(width)
if height != 0:
self.setFixedHeight(height)
layout = layoutname()
self.setLayout(layout)
def addChild(self, child: object)-> None:
"""
Adds child as a child to the widget
:param child: Widget, the child you want to add to the current widget
"""
self.layout().addWidget(child)
def droppedR(self):
print("DROPPED")
我想添加以下功能:当在窗口小部件上删除某些内容(比如文件)时,我想调用droppedR()。我怎么能这样做?
答案 0 :(得分:0)
我不确定它是否能完全回答你的想法,但我之前在使用dragDrop时遇到了一些问题,也许我花了很长时间的这个问题和答案可以帮助你here。
总结一下,主要推理是:
accept()
和acceptProposedAction()
方法接受dragDrop事件dragEnterEvent
dragMoveEvent
和dropEvent
。dropEvent
方法中调用您的droppedR方法。由您决定要在每个事件中应用的逻辑。