QClipboard Class Reference

[QtGui module]

该QClipboard类提供窗口系统剪贴板。More…

继承QObject

Types

  • enum Mode { Clipboard, Selection, FindBuffer }

Methods

  • clear (self, Mode mode = QClipboard.Clipboard)
  • connectNotify (self, SIGNAL())
  • bool event (self, QEvent)
  • QImage image (self, Mode mode = QClipboard.Clipboard)
  • QMimeData mimeData (self, Mode mode = QClipboard.Clipboard)
  • bool ownsClipboard (self)
  • bool ownsFindBuffer (self)
  • bool ownsSelection (self)
  • QPixmap pixmap (self, Mode mode = QClipboard.Clipboard)
  • setImage (self, QImage, Mode mode = QClipboard.Clipboard)
  • setMimeData (self, QMimeData data, Mode mode = QClipboard.Clipboard)
  • setPixmap (self, QPixmap, Mode mode = QClipboard.Clipboard)
  • setText (self, QString, Mode mode = QClipboard.Clipboard)
  • bool supportsFindBuffer (self)
  • bool supportsSelection (self)
  • QString text (self, Mode mode = QClipboard.Clipboard)
  • (QString, QString) text (self, QString subtype, Mode mode = QClipboard.Clipboard)
  • QString text (self, QString subtype, Mode mode = QClipboard.Clipboard)

Qt Signals

  • void changed (QClipboard::Mode)
  • void dataChanged ()
  • void findBufferChanged ()
  • void selectionChanged ()

Detailed Description

该QClipboard类提供窗口系统剪贴板。

剪贴板提供复制和粘贴应用程序之间的数据的简单机制。

QClipboard支持相同的数据类型QDrag确实,并采用类似的机制。对于高级剪贴板的使用读Drag and Drop

有一个在应用程序中的单个QClipboard对象​​,作为访问QApplication.clipboard( ) 。

例如:

  1. QClipboard *clipboard = [QApplication](qapplication.html).clipboard();
  2. [QString](qstring.html) originalText = clipboard->text();
  3. ...
  4. clipboard->setText(newText);

QClipboard具有一些方便的功能来访问常用数据类型:setText( )允许Unicode文本的交换和setPixmap()和setImage( )允许应用程序之间QPixmaps和QImages的交流。该setMimeData( )函数是极大的灵活性:它可以让你添加任何QMimeData复制到剪贴板中。有相应的getter为每个这些,例如text( )image()和pixmap( ) 。你可以通过调用清除剪贴板clear( ) 。

使用这些功能的一个典型例子如下:

  1. void DropArea.paste()
  2. {
  3. const QClipboard *clipboard = [QApplication](qapplication.html).clipboard();
  4. const [QMimeData]($docs-qmimedata.html) *mimeData = clipboard->mimeData();
  5. if (mimeData->hasImage()) {
  6. setPixmap(qvariant_cast<[QPixmap]($docs-qpixmap.html)>(mimeData->imageData()));
  7. } else if (mimeData->hasHtml()) {
  8. setText(mimeData->html());
  9. setTextFormat([Qt](qt.html).RichText);
  10. } else if (mimeData->hasText()) {
  11. setText(mimeData->text());
  12. setTextFormat([Qt](qt.html).PlainText);
  13. } else {
  14. setText(tr("Cannot display data"));
  15. }

Notes for X11 Users

  • The X11 Window System has the concept of a separate selection and clipboard. When text is selected, it is immediately available as the global mouse selection. The global mouse selection may later be copied to the clipboard. By convention, the middle mouse button is used to paste the global mouse selection.
  • X11 also has the concept of ownership; if you change the selection within a window, X11 will only notify the owner and the previous owner of the change, i.e. it will not notify all applications that the selection or clipboard data changed.
  • Lastly, the X11 clipboard is event driven, i.e. the clipboard will not function properly if the event loop is not running. Similarly, it is recommended that the contents of the clipboard are stored or retrieved in direct response to user-input events, e.g. mouse button or key presses and releases. You should not store or retrieve the clipboard contents in response to timer or non-user-input events.
  • Since there is no standard way to copy and paste files between applications on X11, various MIME types and conventions are currently in use. For instance, Nautilus expects files to be supplied with a x-special/gnome-copied-files MIME type with data beginning with the cut/copy action, a newline character, and the URL of the file.

Notes for Mac OS X Users

Mac OS X支持保存在查找操作的当前搜索字符串单独发现的缓冲区。这一发现剪贴板可以通过指定访问的FindBuffer模式。

Notes for Windows and Mac OS X Users

  • Windows and Mac OS X do not support the global mouse selection; they only supports the global clipboard, i.e. they only add text to the clipboard when an explicit copy or cut is made.
  • Windows and Mac OS X does not have the concept of ownership; the clipboard is a fully global resource so all applications are notified of changes.

Type Documentation

  1. QClipboard.Mode

该枚举类型是用来控制系统剪贴板中的一部分是由QClipboard.mimeData( )QClipboard.setMimeData( )和相关函数。

Constant Value Description
QClipboard.Clipboard 0 表示数据应该存储和从全局剪贴板中检索。
QClipboard.Selection 1 表示数据应该存储和从全局鼠标选择检索。支持Selection是只设置一个全局鼠标选择(例如X11 )系统。
QClipboard.FindBuffer 2 表示数据应该存储和查找缓冲区中检索。此模式用于保持搜索字符串在Mac OS X。

See also QClipboard.supportsSelection( ) 。


Method Documentation

  1. QClipboard.clear (self, Mode mode = QClipboard.Clipboard)

清除剪贴板内容。

mode参数用来控制哪些系统剪贴板的一部分使用。如果mode is QClipboard.Clipboard,此功能清除全局剪贴板中的内容。如果mode is QClipboard.Selection这个函数清除全局鼠标选择内容。如果mode is QClipboard.FindBuffer这个函数清除搜索字符串缓冲区。

See also QClipboard.ModesupportsSelection( ) 。

  1. QClipboard.connectNotify (self, SIGNAL())
  1. bool QClipboard.event (self, QEvent)

从重新实现QObject.event( ) 。

  1. QImage QClipboard.image (self, Mode mode = QClipboard.Clipboard)

[

返回剪贴板中的图像,或者返回一个空图像,如果剪贴板中不包含的图像,或者如果它包含一个图像中不支持的图像格式。

]($docs-qimage.html)

mode参数用来控制哪些系统剪贴板的一部分使用。如果mode is QClipboard.Clipboard时,图像从全局剪贴板检索。如果mode is QClipboard.Selection时,图像从全局鼠标选择检索。

See also setImage( )pixmap( )mimeData()和QImage.isNull( ) 。

  1. QMimeData QClipboard.mimeData (self, Mode mode = QClipboard.Clipboard)

返回一个引用QMimeData当前剪贴板中的数据的代表性。

mode参数用来控制哪些系统剪贴板的一部分使用。如果mode is QClipboard.Clipboard时,数据被从全局剪贴板检索。如果mode is QClipboard.Selection时,数据被从全局鼠标选择检索。如果mode is QClipboard.FindBuffer时,数据被从该搜索字符串缓冲区中检索。

text( )image()和pixmap( )函数用于检索的文本,图像和像素映射数据简单包装。

See also setMimeData( ) 。

  1. bool QClipboard.ownsClipboard (self)

返回True如果剪贴板对象拥有的剪贴板数据,否则返回False 。

  1. bool QClipboard.ownsFindBuffer (self)

返回True如果剪贴板对象拥有的查找缓冲区中的数据,否则返回False 。

这个函数中引入了Qt 4.2中。

  1. bool QClipboard.ownsSelection (self)

返回True如果剪贴板对象拥有鼠标选择数据,否则返回False 。

  1. QPixmap QClipboard.pixmap (self, Mode mode = QClipboard.Clipboard)

[

返回剪贴板像素映射,或者null,如果剪贴板中不包含像素图。请注意,这可能会丢失信息。例如,如果图像是24位和显示器是8位,则结果被转换为8位,并且如果图像具有alpha通道,结果正好有一个掩膜。

]($docs-qpixmap.html)

mode参数用来控制哪些系统剪贴板的一部分使用。如果mode is QClipboard.Clipboard,像素图是从全局剪贴板中检索。如果mode is QClipboard.Selection,像素图是从全局鼠标选择检索。

See also setPixmap( )image( )mimeData()和QPixmap.convertFromImage( ) 。

  1. QClipboard.setImage (self, QImage, Mode mode = QClipboard.Clipboard)

副本image复制到剪贴板中。

mode参数用来控制哪些系统剪贴板的一部分使用。如果mode is QClipboard.Clipboard中,图像被存储在全局剪贴板。如果mode is QClipboard.Selection时,数据被存储在全局鼠标选择。

这是简写:

  1. [QMimeData]($docs-qmimedata.html) *data = new [QMimeData]($docs-qmimedata.html);
  2. data->setImageData(image);
  3. clipboard->setMimeData(data, mode);

See also image( )setPixmap()和setMimeData( ) 。

  1. QClipboard.setMimeData (self, QMimeData data, Mode mode = QClipboard.Clipboard)

剪贴板数据集src。该数据的所有权转移到剪贴板。如果你想删除数据或者调用clear( )或致电setMimeData ( )再次与新的数据。

mode参数用来控制哪些系统剪贴板的一部分使用。如果mode is QClipboard.Clipboard时,数据被存储在全局剪贴板。如果mode is QClipboard.Selection时,数据被存储在全局鼠标选择。如果mode is QClipboard.FindBuffer时,数据被存储在搜索字符串缓冲区。

setText( )setImage()和setPixmap( )函数分别用于设置文本,图像和像素映射数据简单的包装。

See also mimeData( ) 。

  1. QClipboard.setPixmap (self, QPixmap, Mode mode = QClipboard.Clipboard)

Copies pixmap复制到剪贴板中。注意,这是慢setImage() ,因为它需要转换的QPixmapQImage第一。

mode参数用来控制哪些系统剪贴板的一部分使用。如果mode is QClipboard.Clipboard,像素图被存储在全局剪贴板。如果mode is QClipboard.Selection,像素图被存储在全局鼠标选择。

See also pixmap( )setImage()和setMimeData( ) 。

  1. QClipboard.setText (self, QString, Mode mode = QClipboard.Clipboard)

Copies text到剪贴板为纯文本。

mode参数用来控制哪些系统剪贴板的一部分使用。如果mode is QClipboard.Clipboard,文本被存储在全局剪贴板。如果mode is QClipboard.Selection,文本存储在全局鼠标选择。如果mode is QClipboard.FindBuffer,文本存储在搜索字符串缓冲区。

See also text()和setMimeData( ) 。

  1. bool QClipboard.supportsFindBuffer (self)

返回True如果剪贴板支持一个单独的搜索缓存,否则返回False 。

  1. bool QClipboard.supportsSelection (self)

返回True如果剪贴板支持鼠标选择,否则返回False 。

  1. QString QClipboard.text (self, Mode mode = QClipboard.Clipboard)

返回剪贴板中的文本为纯文本,或者一个空字符串,如果剪贴板中不包含任何文本。

mode参数用来控制哪些系统剪贴板的一部分使用。如果mode is QClipboard.Clipboard,文本从全局剪贴板中检索。如果mode is QClipboard.Selection,该文本从全局鼠标选择检索。如果mode is QClipboard.FindBuffer,该文本从搜索字符串缓冲区中检索。

See also setText()和mimeData( ) 。

  1. (QString, QString) QClipboard.text (self, QString subtype, Mode mode = QClipboard.Clipboard)

这是一个重载函数。

返回亚型剪贴板文本subtype,或一个空字符串,如果剪贴板中不包含任何文本。如果subtype为null ,任何亚型是可以接受的,并且subtype被设置为所选择的子类型。

mode参数用来控制哪些系统剪贴板的一部分使用。如果mode is QClipboard.Clipboard,文本从全局剪贴板中检索。如果mode is QClipboard.Selection,该文本从全局鼠标选择检索。

为共同的价值观subtype是“普通”和“HTML” 。

请注意,多次调用该函数,例如从一个关键的事件处理程序,可能会很慢。在这种情况下,你应该使用dataChanged()信号代替。

See also setText()和mimeData( ) 。

  1. QString QClipboard.text (self, QString subtype, Mode mode = QClipboard.Clipboard)

Qt Signal Documentation

  1. void changed (QClipboard::Mode)

这是该信号的默认超载。

这个信号被发射时,对于给定的剪贴板中的数据mode被改变。

这个函数中引入了Qt 4.2中。

See also dataChanged( )selectionChanged()和findBufferChanged( ) 。

  1. void dataChanged ()

这是该信号的默认超载。

当剪贴板中的数据改变这个信号被发射。

在Mac OS X和与Qt版本4.3或更高版本,由其他应用程序所做的剪贴板的变化将只检测时,应用程序被激活。

See also findBufferChanged( )selectionChanged()和changed( ) 。

  1. void findBufferChanged ()

这是该信号的默认超载。

当发现缓冲区改变这个信号被发射。这仅适用于Mac OS X。

与Qt版本4.3或更高版本,由其他应用程序所做的剪贴板的变化将只检测时,应用程序被激活。

这个函数中引入了Qt 4.2中。

See also dataChanged( )selectionChanged()和changed( ) 。

  1. void selectionChanged ()

这是该信号的默认超载。

当选择改变这个信号被发射。这仅适用于支持选项窗口系统,例如X11 。 Windows和Mac OS X不支持选择。

See also dataChanged( )findBufferChanged()和changed( ) 。