我试图创建一个用户友好的拖放界面,在那里我可以拖放项目(QTreeWidgets)。有些项目根本无法拖动,有些项目只能拖动到某些项目上。在
通过在item上存储一个drag True或False变量并在输入dragEnterEvent时进行检查,我成功地将项目设置为不被拖动
class SpecialTreeWidget(QtGui.QTreeWidget):
def __init__(self, parent=None):
super(SpecialTreeWidget, self).__init__(parent)
def dragEnterEvent(self, event):
super(SpecialTreeWidget, self).dragEnterEvent(event)
mSenderItems = event.source().selectedItems()
for item in mSenderItems:
if not item.scriptMenuData["drag"]:
event.ignore()
break
else:
event.accept()
当我拖动时,如果项目的scriptMenuData[“drag”]设置为False,则会出现一个不可移动的图标。在
现在的问题是做同样的事情,但是当我试图将一个项目放到某些项目上时。我最初的想法是在同一个班上这样做
^{pr2}$但是没有事件.目标()除dropMimeData方法外,我找不到任何方法来获取目标,但这已经很晚了,我希望在移动项目时显示“你不能在此处放置”图标,而不是在它被删除时。在
关于如何获取目标有什么建议吗?有没有一种方法可以获取鼠标下的小部件?也许还有其他事件/方法/信号可以使用?在
提前谢谢。在
/克里斯蒂安·M
在PySide2中,您可以通过这个获得目标事件。在
所以我设法找到了一个解决方案,你可以抓住哪个项目是在一个点以下QTreeWidget.itemAt() 代码是这样的
相关问题 更多 >
编程相关推荐