2015-02-13 2 views
1

Я новичок в Qt. Я хочу, чтобы сохранить обрезанное изображение при нажатии на кнопку «сохранить»:Сохраните изображение в динамически созданный каталог в Qt

This is the application I am developing, image label containing a cropped image which is to be saved]

Я должен создать каталог на время выполнения, имя каталога должно быть текст в поле TextEdit вблизи " id ", а имя сохраненного имени файла изображения должно быть текстом в поле textEdit рядом с меткой« name ».

я сохранил эти значения в строки

QString id=ui->ids->toPlainText(); 

QString names=ui->textEdit->toPlainText(); 

в on_saveButton_clicked случае я дал линию, как

border2.save("C:\Qtworks\imagecrop_Jubilee\\"+ id+ "\\" +names+ ".jpg"); 

[border2 является QImage с указанным обрезанным изображением]

Но нет изображения сохраняется ...

, пожалуйста, помогите мне решить эту проблему ..

+0

[QDir :: mkpath] (http://doc.qt.io/qt-5/qdir.html), вероятно, поможет. –

+1

Btw, в Qt, вы всегда можете использовать '/' в качестве разделителя путей. Не нужно возиться с побегами обратной косой черты. – hyde

ответ

1

Вы должны указать путь к файлу правильно. Вместо "C:\Qtworks\... вы должны использовать C:\\Qtworks\\... или C:/Qtworks/....

Это потому, что компилятор использует \ как экранирующий символ в строках (для таких вещей, как \t, \n или \r). так что \\ фактически превращен в \.

Кроме того, вы должны создать каталог перед сохранением файла:

QDir dir; 
dir.mkdir("C:/Qtworks/imagecrop_Jubilee/"+ id); 
+0

Спасибо, изображение будет сохранено просто в рабочем каталоге «C:/Qtworks/imagecrop_Jubilee /» Но я хочу создать папку в этом именованном id и сохранить изображение в этой папке, он не работает, я дал код как 'border2.save ("C:/Qtworks/imagecrop_Jubilee /" + id + "/" + names + ".jpg"); – SAHLA

+1

Чтобы создать каталог, вы должны использовать 'QDir :: mkpath'. См. Обновленный ответ. – Nejat

+0

Спасибо. Оно работает... – SAHLA

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