Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: axinedy от Апрель 28, 2010, 06:25



Название: QClipboard - как узнать скопировано или вырезано?
Отправлено: axinedy от Апрель 28, 2010, 06:25
В общем нужно, чтобы приложение могло принимать файл через буфер обмена от файлового менеджера. Если он там вырезан, то он должен быть перемещён, если скопирован, соответственно скопирован...

Выглядит так:

в конструкторе:
   clipboard_ = QApplication::clipboard();
   connect(clipboard_, SIGNAL(dataChanged()), SLOT(onClipboardChanged()));
...
потом вот:
void MainWindow::onClipboardChanged()
{
   const QMimeData *mimeData = clipboard_->mimeData();
   if (mimeData->hasUrls()){
      foreach (QUrl url, mimeData->urls()){
         qDebug() << url.path();
      }
   }

Таким образом, если в файловом менеджере вырезать или скопировать файл (или несколько файлов), приложение получает путь к ним... но как узнать, какое действие было выбрано, вырезать или скопировать???


Название: Re: QClipboard - как узнать скопировано или вырезано?
Отправлено: SASA от Апрель 28, 2010, 17:00
По-моему никак. Когда кладёшь что-нибудь в буфер, то указываешь тип, того что кладёшь и данные. Никакой инфы о действии там не предполагается.