实战PyQt5: 100-给应用添加拖放支持( 二 )
data.setText('drag text ')
- text( ): 返回文本数据 。
- hasText(): 如果对象包含文本数据 , 则返回True , 否则返回False 。
- setHtml(HTML-text) - 以HTML格式设置文本数据(MIME型文本 / html格式) 。 如:
data.setHtml(' drag HTML text b>')
- html( ): 返回HTML格式的文本数据 。
- hasHtml( ): 如果对象包含HTML格式的文本数据 , 则返回True , 否则为False 。
- setUrls( QList url): 设置地址列表 , 参数为QUrl类的列表 。 如:
data.setUrls ([QUrl ("")])
- urls (): 返回地址列表 。 如:
url = e.mimeData (). urls () [0] .toString ()
- hasUrls (): 如果对象包Url地址 , 则返回True , 否则为False 。
- setlmageData(QVarinat img): 设置图像数据 , 可以是QImage或QPixmap实例 。 如:
data.setlmageData (Qlmage("pixmap.png"))data.setlmageData (QPixmap("pixmap.png"))
- imageData( ): 返回图像对象 。
- haslmage( ): 如果对象包含图像数据 , 则返回True , 否则为False 。
- setData(str mimetype,QByteData data) 设置任意类型的MIME类型数据;参数1为字符串类型 , 指定MIME类型;参数2为QByteData类实例 。 该方法可以用MIME不同类型 , 多次调用 。 如:
data.setData("text/plain",QByteArray (bytes ("Data", "utf-8")))
- data(str mimetype): 返回mimetype类型的QByteData数据对象 。
- hasFormat(str mimetype): 如果对象包含mimetype类型数据 , 则返回True , 否则为False 。
- formats(): 返回包括的mimetype类型列表 。
- removeFormat (str mimetype): 删除mimetype类型的数据 。
- clear(): 删除所有数据 。
放置在处理拖放对象之前 , 必须告诉系统该组件可以处理这些事件 。为此 , 要在控件的构造函数中 , 调用继承自QWidget类的setAcceptDrops方法 , 参数值为True 。 如:
self.setAcceptDrops(True)
拖放对象的过程执行如下:- 在控件的dragEnterEvent()方法中 , 检查拖动的MIME类型数据 。 如果该控件能处理此类型数据 , 则调用事件对象的acceptProposedAction( )方法 。 如果要变更操作 , 则将新事件传递给事件对象的setDropAction( )方法 , 然后调用accept( )方法 , 而不是调用acceptProposedAction( )方法 。
- 如果要限制控件的特定区域才能放置操作 , 必须在dragMoveEvent( )方法中处理 。 即当拖放进入到特定的区域 , 调用accept( QRect rect)方法 , 参数rect为特定区域的QRect对象 。
- 在控件的dropEvent(self, event)方法中 , 完成相关操作 。
- dragEnterEvent (self,event): 当拖动进入到控件区域时调用 。 通过event参数 ,可取得QDragEnterEvent实例 。
- dragLeaveEvent(self,event): 当拖动离开控件区域时调用 。 通过event参数 ,可取得QDragLeaveEvent实例 。
- dragMoveEvent (self, event):当拖动在控件区域移动时调用 。 通过event参数 ,可取得QDragMoveEvent实例 。
- dropEvent (self, event): 当拖动在控件区域放开时调用 。 通过event参数 ,可取得QDropEvent实例 。
推荐阅读
- Axiomtek推出AIE100-903-FL-NX AI Edge系统 可在恶劣环境下运行
- 20款游戏实战!酷睿i7-10750H、锐龙9 4900H到底谁更强?
- 项目实战 | 记一次对某猥琐PHP后门的爆菊
- Redis集群做法的难点,百万并发客户端「实战」
- GTC DLI 实战培训第一课:理论与实践入门
- Python爬虫实战案例:采集爱奇艺VIP视频
- 补天白帽城市沙龙走进成都 实战化攻防推动安全产业发展
- 阿里爆款SpringBoot项目实战PDF+源码+视频分享
- 想上高频内存,主板怎么选?大雕Z490实战8套内存秀给你看
- Python数据分析:数据可视化实战教程