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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: У меня нет QDesktopServices [Решено]  (Прочитано 6476 раз)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4730



Просмотр профиля WWW
« Ответ #15 : Август 06, 2012, 10:53 »

попробуй так:
Код
C++ (Qt)
QDir dir = QDir::temp();
QString s = dir.absolutePath() + '/';
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
CJ1
Гость
« Ответ #16 : Август 06, 2012, 11:06 »

Так же! Отказ в доступе!

Вот даже по подробней код
Код
C++ (Qt)
   QFile f;
   QString s;
   QDir dir2 = QDir::temp();
   //Берем путь к temp папки
   s = dir2.absolutePath() + '/';
   QDir dir(s);
   if (!dir.exists(s+"code"))
       if(dir.mkdir(s+"code")){
           QMessageBox::information(0,"Папка создалась!",s);
       } else{
           QMessageBox::critical(0,"Папка не создалась!",s);
           return;
       }
 
   s += "code/";
 
   // Устанавливаю имя файла в ресурсах
   f.setFileName(":/new/prefix1/1111.xlsx");
   if(!f.exists()){
       QMessageBox::critical(0,"Ошибка","Файл :/new/prefix1/1111.xlsx отсутствует");
       return;
   }
 
 
   if (!QFile::exists(s+"1121.xlsx"))
       if (f.copy(s+"1121.xlsx"))
           QMessageBox::about(0,"","File copy: OK");
       else{
           QMessageBox::critical(0,"File copy: ",f.errorString()+ ": "+s+"1121.xlsx");
           return;
       }
 
   f.close();
   f.setFileName(s+"1121.xlsx");
   if (f.remove() )
       QMessageBox::about(0,"","File delete: OK");
   else{
       QMessageBox::critical(0,"File delete: ",f.errorString()+s+"1121.xlsx");
 
   }
Записан
Serr500
Гость
« Ответ #17 : Август 06, 2012, 11:10 »

Да. Флажок readOnly ставит. Видимо, из-за того, что ресурсы, вкомпилированные в бинарник, менять невозможно. Нужно убирать этот флажок. Например, так:
Код:
f.setPermissions(f.permissions() | QFile::WriteOwner | QFile::WriteUser | QFile::WriteGroup | QFile::WriteOther);

P.S. Вместо
Код:
QString s = QDir::tempPath().replace("/","\\") +"\\";
было бы более правильно использовать
Код:
QString s = QDir::toNativeSeparators(QDir::tempPath()) + QDir::separator();
Записан
CJ1
Гость
« Ответ #18 : Август 06, 2012, 11:13 »

Точняк!!!!
Чтож я сразу та не попробовал! (((((
Я не думал что он ставит Read onle
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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