Работа с буфером обмена

Помимо технологии drag & drop для обмена данными между приложениями используется буфер обмена. Одно приложение помещает данные в буфер обмена, а второе приложение (или то же самое) может извлечь их из буфера. Получить указатель на глобальный объект буфера обмена позволяет статический метод clipboard() из класса QApplication:

QClipboard *clipboard()

Пример получения текста из буфера обмена:

QString text = QApplication::clipboard()->text();

Класс QClipboard содержит следующие методы (перечислены только основные методы; полный список смотрите в документации по классу QClipboard):

  • setText() — копирует текст в буфер обмена. Прототип метода:
void setText(const QString &text,
             QClipboard::Mode mode = Clipboard)
  • text() — возвращает текст из буфера обмена или пустую строку. Прототипы метода:
QString text(QClipboard::Mode mode = Clipboard) const
QString text(QString &subtype,
             QClipboard::Mode mode = Clipboard) const
  • setMimeData() — позволяет сохранить в буфере данные любого типа. В качестве первого параметра указывается экземпляр класса QMimeData. Этот класс мы уже рассматривали при изучении технологии drag & drop (см. разд. 4.10.2). Прототип метода:
void setMimeData(QMimeData *src,
                 QClipboard::Mode mode = Clipboard)
  • mimeData() — возвращает указатель на экземпляр класса QMimeData. Прототип метода:
const QMimeData *mimeData(
                     QClipboard::Mode mode = Clipboard) const
  • clear() — очищает буфер обмена. Прототип метода:
void clear(QClipboard::Mode mode = Clipboard)

В необязательном параметре mode могут быть указаны константы Clipboard (используется по умолчанию), Selection или FindBuffer.

Отследить изменение состояния буфера обмена позволяет сигнал dataChanged(). Назначить обработчик этого сигнала можно так:

connect(QApplication::clipboard(), SIGNAL(dataChanged()),
        this, SLOT(on_change_clipboard()));

Учебник C++ (Qt Creator и MinGW)
Учебник C++ (Qt Creator и MinGW) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов