2015-07-02 3 views
0

Я использую QImage.load() для загрузки изображения в свою программу, но он работает только тогда, когда имя файла не содержит пробелов (например: "/Users/Emile/Dropbox/crookedStall cover.jpg"). Поскольку я хочу, чтобы пользователь мог выбрать любое изображение со своего компьютера, это немного проблема.Использование QImage load() с именем файла, содержащим пробелы в QT

Имя файла выбранного изображения возвращается функцией, хранящейся в QString. Я попытался использовать QString.replace(), чтобы избежать пробелов с обратной косой чертой, но это, похоже, не работает. Очевидно, что простое удаление пробелов тоже не работает.

Я немного оглянулся и не нашел никаких рабочих решений. Как загрузить изображение с именем файла, которое содержит пробелы? Благодаря!

+0

Qt обычно обрабатывает пробелы правильно. Возможно, вам придется окружить его кавычками. Также попробуйте использовать 'QFileDialog :: openFile()' для получения пути к файлу. – phyatt

+0

В настоящее время я использую 'QFileDialog :: getOpenFileName()', чтобы пользователь мог выбрать изображение на своем компьютере и получить путь к файлу. Это то, что вы имели в виду @phyatt? –

+1

Да, извините за опечатку. У меня была эта функция для меня с пробелами в имени файла в Windows и Mac без проблем. Что такое возвращаемое значение из 'QImage.load'? Вы также можете попробовать загрузить «QImageReader reader (« image.png »); // reader.format() == "png" ' – phyatt

ответ

0

Это прекрасно работает для меня:

Это только с помощью QFileDialog :: getOpenFileNames для поиска файлов

QString filter = QString("Supported Files (*.shp *.kml *.jpg *.png);;All files (*)"); 
QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Select File(s)"), QDir::homePath(), filter); 
for(int idx =0; idx < fileNames.size(); ++idx) 
{ 
    QImage image ; 
    bool success = image.load(fileNames.at(i)); 
    qDebug() << "File loaded succesfully " << success ; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^