版权声明:zhaojanc https://blog.csdn.net/qq_38641985/article/details/81533323
from PySide2 import QtGui,QtWidgets,QtCore
class DraggableLabel(QtWidgets.QLabel):
def __init__(self, *args, **kwargs):
super(DraggableLabel, self).__init__(*args, **kwargs)
self.setAlignment(QtCore.Qt.AlignCenter)
palette = self.palette()
palette.setColor(self.backgroundRole(), QtCore.Qt.black)
self.setPalette(palette)
self.setAutoFillBackground(True)
def mousePressEvent(self, event):
super(DraggableLabel, self).mousePressEvent(event)
mimeData = QtCore.QMimeData()
mimeData.setText(self.text())
drag = QtGui.QDrag(self)
drag.setMimeData(mimeData)
drag.exec_()
class DroppableLineEdit(QtWidgets.QLineEdit):
def __init__(self, *args, **kwargs):
super(DroppableLineEdit, self).__init__(*args, **kwargs)
self.setAcceptDrops(True)
def dropEvent(self, event):
if event.mimeData().hasText():
self.setText(event.mimeData().text())
event.accept()
widget =QtWidgets.QWidget()
widget.setWindowFlags(QtCore.Qt.Window)
widget.resize(640, 72)
mainLayout = QtWidgets.QVBoxLayout(widget)
mainLayout.addWidget(DroppableLineEdit())
layout = QtWidgets.QHBoxLayout(widget)
mainLayout.addLayout(layout)
layout.addWidget(DraggableLabel('persp'))
layout.addWidget(DraggableLabel('top'))
layout.addWidget(DraggableLabel('front'))
layout.addWidget(DraggableLabel('side'))
widget.show()
1,首先,打开maya,找到脚本编辑器。
2,导入PySide2的模块
3,重写单行文本框;重写标签,并设置背景;并为他们添加拖拽或接受拖拽功能;
4,定义布局,把他们放到一起。
5,运行脚本测试完成。