Russian Qt Forum
Октябрь 01, 2024, 02:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [решено] Получить имя файла из QDropEvent.  (Прочитано 2752 раз)
SASA
Гость
« : Апрель 19, 2011, 09:55 »

Не могу получить корректное имя файла с русскими буквами при перетаскивании его на форму.
Пытаюсь получить его из QUrl
Код
C++ (Qt)
void Form::dropEvent( QDropEvent *event )
{
if (event && event->mimeData()->hasUrls())
{
QUrl url = event->mimeData()->urls().first();
QString fileName = url.toLocalFile();
QMessageBox::information(this,"",fileName);
}
}
Под виндой все хорошо. Но под линухом (МСВС) в fileName вместо русских букв краказяблики. Кодировка KOI8-R.
« Последнее редактирование: Июнь 27, 2011, 10:39 от SASA » Записан
SASA
Гость
« Ответ #1 : Июнь 27, 2011, 10:37 »

Проблему решил перекодированием "чистого" содержания миме даты.

Код:
const QMimeData * mime = event->mimeData();
QTextCodec* codec = QTextCodec::codecForLocale();
QString str = codec->toUnicode(mime->data("text/uri-list"));
QMimeData convertedMimeData;
convertedMimeData.setData("text/uri-list",str.toUtf8());
Дальше работаем convertedMimeData.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.071 секунд. Запросов: 21.