欢迎光临散文网 会员登陆 & 注册

拖拽与剪切板

2022-01-21 15:56 作者:海鸥之道  | 我要投稿

1、Drag与Drop

为用户提供的拖曳功能很直观,在很多桌面应用程序中,复制或移动对象都可以通过拖曳来完成。

基于MIME类型的拖曳数据传输是基于QDrag类的。QMimeData对象将关联的数据与其对应的MIME类型相关联。

MIME 类型的数据可以简单理解为互联网上的各种资源,比如文本、音频和视频资源等,互联网上的每一种资源都属于一种 MIME类型的数据。

如表1所示的MimeData类函数允许检测和使用方便的MIME类型。

表  1

许多QWidget对象都支持拖曳动作,允许拖曳数据的控件必须设置QWidget.setDragEnabled()为 True。另外,控件应该响应拖曳事件,以便存储所拖曳的数据。常用的拖曳事件如表2所示。

表  2

实例演示:拖拽功能

运行程序,显示效果如下:

图  1

代码分析:

在这个例子中,DragEnterEvent会验证事件的MIME 数据是否包含字符串文本,如果包含字符串文本,就接收事件提出的添加文本操作,并将文本作为新条目(lItem)添加到 ComboBox控件中,否则忽略此次操作。

2、QClipboard

QClipboard类提供了对系统剪贴板的访问,可以在应用程序之间复制和粘贴数

据。它的操作类似于QDrag类,并使用类似的数据类型。

QApplication类有一个静态方法clipboard(),它返回对剪贴板对象的引用。任何类型的MimeData都可以从剪贴板复制或粘贴。

QClipboard类中的常用方法如表3所示。

表  3

QClipboard类中的常用信号如下表:

表  4

实例演示2:QClipboard的使用

运行程序,显示效果如下:

图  2

代码分析:

在这个例子中,有6个按钮和2个标签。需要实例化clipboard对象,可以将文本复制到clipboard对象中。

也可以将图片复制到剪贴板对象中。

粘贴图片:

图 3


拖拽与剪切板的评论 (共 条)

分享到微博请遵守国家法律