Russian Qt Forum

Qt => Общие вопросы => Тема начата: remiznik от Февраль 26, 2009, 18:35



Название: [QT4] QFileDialog путь к файлу ?
Отправлено: 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);
}


Название: Re: [QT4] QFileDialog путь к файлу ?
Отправлено: Rcus от Февраль 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


Название: Re: [QT4] QFileDialog путь к файлу ?
Отправлено: remiznik от Февраль 26, 2009, 19:35
не работает !
 я забыл указать что это у меня под виндовсом не работает ... в линуксе я просто брал имя и использовал !


Название: Re: [QT4] QFileDialog путь к файлу ?
Отправлено: Rcus от Февраль 26, 2009, 19:41
/*sigh*/ может вы поточнее скажете что не работает? Я больше специалируюсь на чтении документации, а не скоростной телепатии на больших расстояниях


Название: Re: [QT4] QFileDialog путь к файлу ?
Отправлено: remiznik от Февраль 26, 2009, 19:55
извеняюсь заработаало спасибо )

просто я создавал фаел на рабочем столе и он ввместо руских букв выдавал какуюто абра-кадабру !
 моглибы попсоветовать как сделать чтоб он воспринимал русские буквы ?


Название: Re: [QT4] QFileDialog путь к файлу ?
Отправлено: BRE от Февраль 26, 2009, 20:05
моглибы попсоветовать как сделать чтоб он воспринимал русские буквы ?
Да, и мне попсоветуйте. А то я читаю сообщения и как то плохо их воспринимаю.  ;)


Название: Re: [QT4] QFileDialog путь к файлу ?
Отправлено: Rcus от Февраль 26, 2009, 20:11
Я уже предложил три варианта, могу еще бонусный дать. Забейте на std и сделайте через QFile + QTextStream.


Название: Re: [QT4] QFileDialog путь к файлу ?
Отправлено: remiznik от Февраль 26, 2009, 20:17
Rcus спсибо за помошь =) у QT всё работает походу беда в ofstream не понимает она почемуто русские буквы !

ну я как бы хотел на стандартной библиотеке сделать запись файла !


Название: Re: [QT4] QFileDialog путь к файлу ?
Отправлено: Rcus от Февраль 26, 2009, 20:25
с ofstream проблема в том что он принимает имя файла в виде const char *, поэтому имя должно быть в кодировке совместимой с ascii (кодировка для неюникод приложений в NT, utf8 в декомпозиции в Mac OS X/*судя по qfile.cpp*/, в системной локали для *nix). Если вариант с QFile::encodeName не работает, то не знаю чем тут помочь /*дома окон не держу, потому проверить смогу только через 12 часов*/


Название: Re: [QT4] QFileDialog путь к файлу ?
Отправлено: crackedmind от Февраль 26, 2009, 20:52
А откуда такая необходимость использовать ofstream вместо QFile?


Название: Re: [QT4] QFileDialog путь к файлу ?
Отправлено: remiznik от Февраль 26, 2009, 21:00
ну мне кажется это экономичне хотя это предположение просто догадка ))) да и это както универсальне мне кажеться ))

я использовал std::wstring в место std::string и всё вроде заработало ))
спасибо за помошь )