PyQt5编程(20):拖放技术
(2017-10-25 22:05:52)
标签:
杂谈 |
分类: PYTHON |
- setstartDragDistance (Distance) - 拖动开始的最小移动量;
- startDragDistance() - 返回拖动开始的最小移动量;
- setstartDragTime (Time) -拖动开始的按压毫秒数;
- startDragTime () - 返回拖动开始的按压毫秒数;
- exec( ) -
开始拖放操作,返回一个代表放置操作的枚举值。有两个格式:
exec(supportedActions = Qt.MoveAction)
exec(supportedActions, defaultDropAction)
详细用法参见http://doc.qt.io/qt-5/qdrag.html#exec - setMimeData (QMimeData qmd) - 设置拖放中传输的数据,
参数为QMimeData类型。传输文本的例子:
data = QtCore.QMimeData ()
data.setText ("Drag text")
drag = QtGui.QDrag (self)
drag.setMimeData (data) - mimeData () - 返回拖放过程中传输数据的QMimeData 对象;
- setPixmap(QPixmap qpix) - 设定拖放过程鼠标显示的图像。如:
drag.setPixmap (QtGui.QPixmap ("dd representer.png")) - pixmap() - 返回拖放过程中鼠标显示图像的QPixmap对象;
- setHotSpot (QPoint pt) - 设置图像的热点位置。
drag.setHotSpot (QtCore.QPoint (20, 20)) - hotSpot() - 返回热点位置的QPoint对象;
- setDragCursor (QPixmap pix, Qt.DropAction dact) -
设置拖放的鼠标形状。第一个参数为鼠标形状的QPixmap对象;第二参数为相关操作的枚举值,只能是
CopyAction, MoveAction 或LinkAction。drag.setDragCursor (QtGui.QPixmap ("move_cursor.png"), QtCore.Qt.MoveAction) - dragCursor (
Qt.DropAction dact) - 返回dact操作的鼠标形状的QPixmap对象; - source() - 返回源控件的引用;
- target() - 返回目标控件的引用。如果拖放的目标对象为另一应用,返回值为None.
- supportedActions () - 返回当前有效操作的组合值。
- defaultAction () - 返回缺省的操作。
- actionChanged (Qt.DropAction dact) - 当拖放的行为被该变时,发射该信号;
- targetchanged (QWidget obj) - 当目标控件被改变时,将会发射该信号;
- setText(text) - 设置文本数据(MIME型文本/文本格式):
data.setText("拖动文本") - text( ) - 返回文本数据;
- hasText( ) - 如果对象包含文本数据,则返回True,否则返回False。
- setHtml(HTML-text) - 以HTML格式设置文本数据(MIME型文本 / html格式):
data.setHtml("拖动HTML文本</ b>") - html( ) - 返回HTML格式的文本数据;
- hasHtml( ) - 如果对象包含HTML格式的文本数据,则返回True,否则为False.
- setUrls( QList
url) - 设置地址列表,参数为QUrl类的列表;
data.setUrls ([QtCore.QUrl ("http://www.google.com/")]) - urls () - 返回地址列表:
url = e.mimeData (). urls () [0] .toString () - hasUrls () - 如果对象包Url地址,则返回True,否则为False.
- setlmageData(QVarinat
img) - 设置图像数据,可以是QImage或QPixmap实例:
data.setlmageData (QtGui.Qlmage("pixmap.png"))
data.setlmageData (QtGui.QPixmap("pixmap.png")) - imageData( ) - 返回图像对象;
- haslmage( ) - 如果对象包含图像数据,则返回True,否则为False.
- setData(QString mimetype, QCore.QByteData data)
设置任意类型的MIME类型数据;参数1为QString类型,指定MIME类型;参数2为QByteData类实例。该方法可以用MIME不同类型,多次调用:
data.setData("text/plain",QtCore.QByteArray (bytes ("Data", "utf-8"))) - data(QString mimetype) -
返回mimetype类型的QByteData数据对象; - hasFormat(QString mimetype)
-
如果对象包含mimetype类型数据,则返回True,否则为False. - formats ( ) - 返回包括的mimetype类型列表;
- removeFormat (QString mimetype) - 删除mimetype类型的数据;
- clear ( ) - 删除所有数据。
self.setAcceptDrops(True)
- 在控件的dragEnterEvent()方法中,检查拖动的MIME类型数据。如果该控件能处理此类型数据,则调用事件对象的acceptProposedAction( )方法。如果要变更操作,则将新事件传递给事件对象的setDropAction( )方法,然后调用accept( )方法,而不是调用acceptProposedAction( )方法。
- 如果要限制控件的特定区域才能放置操作,必须在dragMoveEvent( )方法中处理。即当拖放进入到特定的区域,调用accept( QRect rect)方法,参数rect为特定区域的QRect对象。
- 在控件的dropEvent()方法中,完成相关操作。
-
- dragEnterEvent (self,event) - 当拖动进入到控件区域时调用。通过event参数, 可取得QDragEnterEvent实例;
- dragLeaveEvent(self,event) - 当拖动离开控件区域时调用。通过event参数, 可取得QDragLeaveEvent实例;
- dragMoveEvent (self, event) -当拖动在控件区域移动时调用。通过event参数, 可取得QDragMoveEvent实例;
- dropEvent (self, event) - 当拖动在控件区域放开时调用。通过event参数, 可取得QDropEvent实例;
- mimeData( ) - 返回含有所传输数据和MIME类型信息的QMimeData类的实例;
- pos( ) -
返回QPoint类的实例,为拖放对象放置的整数坐标; - posF( ) -
返回QPointF类的实例,为拖放对象放置的浮点坐标; - possibleAction( ) -
返回拖放可能的操作组合,如:
if e.possibleActions () & QtCore.Qt.MoveAction:
print ("MoveAction")
if e.possibleActions () & QtCore.Qt.CopyAction:
print ("CopyAction") - proposedAction( ) - 返回默认的放置操作;
- acceptProposedAction( )
-
表示已准备好接受传输的数据和由proposalAction( )返回的默认操作。该方法(或者accept()方法)必须在dragEnterEvent()中调用,否则,dropEvent()不会被调用。 - setDropAction (action) - 允许在放置时指定为action. 作了此设置后,必须调用accept( )方法, 而不是acceptProposedAction( )方法;
- dropAction( ) - 返回放置时进行的操作。如果用setDropAction( )进行了更改,可能与proposedAction ()的返回值不一致。
- keyboardModifiers( ) - 用于判断按下了哪些修饰键 (, , , 等.) ,可参考“PyQt5编程(18):键盘事件”中的对应函数。
- mouseButtons () - 用于判断在拖放过程中按下的鼠标键;
- source( ) - 如果拖放是从另一个应用程来的,返回为None;否则,返回对拖放源控件的引用。
- accept (QRect rect) - 表明允许后续的移动操作。 rect用来指定可接受拖放操作的区域;
- ignore (QRect rect) - 表明不允许后续的移动操作。 rect用来指定不接受拖放操作的区域;;
- answerRect () - 返回可接受拖放操作区域的QRect对象。
前一篇:PyQt5编程(19):鼠标事件