Извините, если этот вопрос тривиален, но у меня есть следующая проблема: У меня есть
N.1 QGraphicsView
N.1 QComboBox
Я пытаюсь сохранить изображения, загруженные на QGraphicsView
, в папку на рабочем столе, выбирая формат изображения с помощью QComboBox
. Цикл, который я написал, работает для файла .png, но я застрял в других форматах, так как не уверен, как правильно обрабатывать выбор QComboBox
.
Смотрите ниже фрагмент кода, который я использую:
mainwindow.h
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
bool fileExists(QString path);
void bothPrintScreenBtn(const QString &pathImg, bool checkFolder);
private slots:
void on_bothPrintScreenBtn_clicked();
private:
bool Lwrite = true;
int counterA=0;
int counterB=0;
mainwindow.cpp
// Checking if the file-A and file-B exists already
bool MainWindow::fileExists(QString path) {
QFileInfo check_file(path);
// check if file exists and if yes: Is it really a file and no directory?
if (check_file.exists() && check_file.isFile()) {
return true;
} else {
return false;
}
}
void MainWindow::bothPrintScreenBtn(const QString& pathImg, bool checkFolder)
{
QString outA;
do{
outA = pathImg+"/printScreenA/"+ QString::number(counterA)+".png";
counterA++;
}
while((checkFolder && fileExists(outA)));
QImage imageA = ui->graphicsViewLX->grab().toImage();
imageA.save(outA);
QString outB;
do{
outB = pathImg+"/printScreenB/"+ QString::number(counterB)+".png";
counterB++;
}
while((checkFolder && fileExists(outB)));
QImage imageB = ui->graphicsViewRX->grab().toImage();
imageB.save(outB);
}
void MainWindow::on_bothPrintScreenBtn_clicked()
{
bothPrintScreenBtn("/home/pathTo/Desktop", !Lwrite);
}
Это QComboBox
, который позаботится о формате:
void MainWindow::on_comboBoxFormat_A_currentIndexChanged(int index)
{
switch (index)
{
case(0):
// Nothing happens
break;
case(1):
// Choose .tiff format
break;
case(2):
// Choose .tif format
break;
case(3):
// Choose .jpg format
break;
case(4):
// Choose .jpeg format
break;
case(5):
// Choose .png format
break;
default:
break;
}
}
Спасибо за помощь в решении этой проблемы. Я знаю, что это тривиально, но я застрял и хотел понять, как обрабатывать это исключение.