QClipboard类提供了对窗口系统剪贴板的访问。
#include "qclipboard.h"
继承了QObject。
公有成员
-
void clear()
-
bool supportsSelection () const
-
bool ownsSelection() const
-
bool ownsClipboard() const
-
void setSelectionMode ( bool enable)
-
bool selectionModeEnabled () const
-
QMimeSource * data() const
-
void setData( QMimeSource * src)
-
QString text() const
-
QString text( QCString & subtype )const
-
void setText(const QString & text)
-
QImage image() const
-
QPixmap pixmap() const
-
void setImage(const QImage & image)
-
void setPixmap(const QPixmap & pixmap)
信号
-
void selectionChanged ()
-
void dataChanged()
详细描述
QClipboard类提供了对窗口系统剪贴板的访问。剪贴板提供了一种在应用程序之间复制和粘贴数据的简单机制。
QClipboard支持和QDragObject一样的数据类型,并且使用类似的机制。有关剪贴板高级的用法请阅读拖放文档。
在应用程序中只有一个QClipboard,并且你可以使用QApplication::clipboard()来访问它。
实例:
QClipboard提供了一些有特色的很方便的函数来访问普通数据类型:setText()允许在应用程序之间Unicode文本的交换,setPixmap()和setImage()允许在应用程序之间交换QPixmap和QImage。setData()函数在功能上是最灵活的:它允许你把任何QMimeSource添加到剪贴板。每种方式都有相应的获得函数,例如text()、image()和pixmap()。
你可以通过调用clear()清空剪贴板。
X窗口系统和微软的Windows底层的剪贴板是不同的。X窗口系统有一个选择的概念——当文本被选择,它立即被复制到选择缓冲;微软的Windows仅仅在文本被显示地复制或者剪切的时候才被复制到剪贴板。X窗口系统还有一个所有权的概念,如果你在一个窗口中改变了选择,X11仅仅通知变化的拥有者和前任拥有者,在微软的Windows是剪贴板是一个完完全全的全局资源,所以所有应用程序被通知了变化。请参考Qt设计器实例中的multiclip实例,这是一个也描述了选择处理的多平台剪贴板应用程序。
成员函数文档
void QClipboard::clear ()
清空剪贴板内容。QMimeSource *QClipboard::data () const
返回代表当前剪贴板数据的QMimeSource的引用。void QClipboard::dataChanged ()[信号]
当剪贴板内容发生变化时,这个信号被发射。
QImage QClipboard::image () const
返回剪贴板图片,或者如果剪贴板没有包含任何图片或者它包含一个不被支持的格式的图片,返回一个无效的图片。也可以参考setImage()、pixmap()、data()和QImage::isNull()。
bool QClipboard::ownsClipboard ()const
如果剪贴板对象拥有剪贴板数据,返回真,否则返回假。bool QClipboard::ownsSelection ()const
如果剪贴板对象拥有鼠标选择数据,返回真,否则返回假。QPixmap QClipboard::pixmap () const
返回剪贴板像素映射,或者如果剪贴板不包含像素映射,返回无效的像素映射。注意这样会导致丢失信息。例如,如果图片是24位并且显示是8位,结果会被转换为8位,并且如果这个图象有一个alpha通道,结果会只有一个面具。也可以参考setPixmap()、image()、data()和QPixmap::convertFromImage()。
void QClipboard::selectionChanged ()[信号]
当选择发生变化时,这个信号被发射。这仅仅适用于支持选择的窗口系统,例如X11。Windows不支持选择。
bool QClipboard::selectionModeEnabled ()const
返回选择模式。也可以参考setSelectionMode()和supportsSelection()。
void QClipboard::setData ( QMimeSource * src)
设置剪贴板数据位src。数据的所有权被传递给剪贴板。如果你想移除这个数据,请调用clear()或者使用新数据再次调用setData()。QDragObject子类是可以放到剪贴板中的合理对象(但是不要试图在同一个对象上调用QDragObject::drag())。任何被放置到剪贴板中的QDragObject的父对象都必须为0。不要把QDragMoveEvent或QDropEvent的子类放到剪贴板中,因为它们不属于接收到它们的事件处理器。
setText()和setPixmap()函数只是分别地对文本和图象数据的简单封装。
void QClipboard::setImage (const QImage & image)
把image复制到剪贴板。这是一个快速的方式:
也可以参考image()、setPixmap()和setData()。
void QClipboard::setPixmap (const QPixmap & pixmap)
把pixmap复制到剪贴板。注意这个比setImage()慢,因为它需要首先把QPixmap转换为QImage。也可以参考pixmap()、setImage()和setData()。
void QClipboard::setSelectionMode (bool enable )
设置剪贴板选择模式。如果enable为真,那么后来对QClipboard::setData()的调用以及其它把数据放到简帖板的函数都将会把数据放到鼠标选择中,否则数据将会被放到剪贴板中。也可以参考supportsSelection()和selectionModeEnabled()。
void QClipboard::setText ( const QString & text)
把text作为简单文本复制到剪贴板中。bool QClipboard::supportsSelection ()const
如果剪贴板支持鼠标选择,返回真,否则返回假。QString QClipboard::text ( QCString & subtype) const
返回子类型为subtype的剪贴板文本,或者如果剪贴板不包含任何文本,返回一个无效字符串。如果subtype为空,任何子类型都是可以接受的,并且subtype被设置为被选择的子类型。subtype的值应为“plain”和“html”。
也可以参考setText()、data()和QString::operator!()。
QString QClipboard::text () const
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。返回纯文本格式的剪贴板文本,或者如果剪贴板不包含任何文本,返回一个无效字符串。
也可以参考setText()、data()和QString::operator!()。