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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [QT4] QFileDialog путь к файлу ?  (Прочитано 8391 раз)
remiznik
Гость
« : Февраль 26, 2009, 18:35 »

нужно сохранить фаел в задоном месте. Для получения пути использую QFileDialog но фаел хочу создать с помошью стандартной библиотеки и потому переделываю путь файла из QString в std::string но почемуто фаел не создаётся ? посоветуйте чтони-буть ?

Код:
void writeResult(std::string fileName)
{
std::ofstream corell(fileName.c_str());
  if(corell.is_open())
  {
corell<<" Какойто текст "<<std::endl;
  } 
}
void dialoggg::on_pushButton_clicked()
{
    QString fileName = QFileDialog::getSaveFileName(this, "Save");
std::string temp=fileName.toStdString();
writeResult(temp);
}
Записан
Rcus
Гость
« Ответ #1 : Февраль 26, 2009, 19:22 »

Хотелось бы посоветовать плагин к мозгу/браузеру с проверкой правописания. А если серьезнее /*хотя это как посмотреть...*/, то подозреваю что у вас в выбранном пути для сохранения есть символы выше U+7F и не установлен codecForCStrings. В этом случае рекомендую читать документацию.
Код
C++ (Qt)
/*use upon your own consideration*/
std::string fileName = QFile::encodeName(QFileDialog::getSaveFileName(this,tr("Save"))).data();
UPD:typos
« Последнее редактирование: Февраль 26, 2009, 19:39 от Rcus » Записан
remiznik
Гость
« Ответ #2 : Февраль 26, 2009, 19:35 »

не работает !
 я забыл указать что это у меня под виндовсом не работает ... в линуксе я просто брал имя и использовал !
Записан
Rcus
Гость
« Ответ #3 : Февраль 26, 2009, 19:41 »

/*sigh*/ может вы поточнее скажете что не работает? Я больше специалируюсь на чтении документации, а не скоростной телепатии на больших расстояниях
Записан
remiznik
Гость
« Ответ #4 : Февраль 26, 2009, 19:55 »

извеняюсь заработаало спасибо )

просто я создавал фаел на рабочем столе и он ввместо руских букв выдавал какуюто абра-кадабру !
 моглибы попсоветовать как сделать чтоб он воспринимал русские буквы ?
Записан
BRE
Гость
« Ответ #5 : Февраль 26, 2009, 20:05 »

моглибы попсоветовать как сделать чтоб он воспринимал русские буквы ?
Да, и мне попсоветуйте. А то я читаю сообщения и как то плохо их воспринимаю.  Подмигивающий
Записан
Rcus
Гость
« Ответ #6 : Февраль 26, 2009, 20:11 »

Я уже предложил три варианта, могу еще бонусный дать. Забейте на std и сделайте через QFile + QTextStream.
Записан
remiznik
Гость
« Ответ #7 : Февраль 26, 2009, 20:17 »

Rcus спсибо за помошь =) у QT всё работает походу беда в ofstream не понимает она почемуто русские буквы !

ну я как бы хотел на стандартной библиотеке сделать запись файла !
Записан
Rcus
Гость
« Ответ #8 : Февраль 26, 2009, 20:25 »

с ofstream проблема в том что он принимает имя файла в виде const char *, поэтому имя должно быть в кодировке совместимой с ascii (кодировка для неюникод приложений в NT, utf8 в декомпозиции в Mac OS X/*судя по qfile.cpp*/, в системной локали для *nix). Если вариант с QFile::encodeName не работает, то не знаю чем тут помочь /*дома окон не держу, потому проверить смогу только через 12 часов*/
« Последнее редактирование: Февраль 26, 2009, 20:26 от Rcus » Записан
crackedmind
Гость
« Ответ #9 : Февраль 26, 2009, 20:52 »

А откуда такая необходимость использовать ofstream вместо QFile?
Записан
remiznik
Гость
« Ответ #10 : Февраль 26, 2009, 21:00 »

ну мне кажется это экономичне хотя это предположение просто догадка ))) да и это както универсальне мне кажеться ))

я использовал std::wstring в место std::string и всё вроде заработало ))
спасибо за помошь )
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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