Кто-нибудь сталкивался с проблемой копирования файла в буфер? Не могу добиться нормального копирования (ну как в TotalCommander к примеру)
пробовал через
QFile readFile( "C:\file.txt" );
if ( !readFile.open( QIODevice::ReadOnly ) )
return;
QMimeData * md = new QMimeData();
md->setData( "file", readFile.readAll() );
QApplication::clipboard()->setMimeData( md );
Для начала надо бы
"C:\\file.txt"
QFile readFile( "C:\file.txt" );
if ( !readFile.open( QIODevice::ReadOnly ) )
return;
QMimeData * md = new QMimeData();
md->setData( "file", readFile.readAll() );
QApplication::clipboard()->setMimeData( md );
QClipboard* clipBrd = qApp->clipboard();
if (clipBrd){
const QMimeData* mime = clipBrd->mimeData();
if (mime){
toDebug =toDebug + QString("\n QClipboard formats: ") + mime->formats().join(" / ");
}
}
Так, со слешами все понятно, это не суть. Смысл вот в чем - надо просто скопировать файл в буфер, как угодно, имея только QFileInfo. Что будет потом - меня не касается, как основной вариант - вставка файла в проводнике винды или там линуха через обычный Ctrl+V. Главная заморочка - запихать нужную информацию в буфер.
Все, проблема решена. Всем спасибо
А, действительно. Для тех кому еще понадобится:
QMimeData * md = new QMimeData(); // создаем новый объект QMimeData
QUrl url1;
url1.setPath( "Путь к файлу" ); // Создаем QUrl с ссылкой на искомый файл
if ( url1.isValid() )
{
QList<QUrl> list;
list.append( url1 );
md->setUrls( list ); // Подпихиваем лист ссылок в объект и все в порядке
QApplication::clipboard()->setMimeData( md );
}
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)