не может преобразовать параметр 1 из QDateTime в ‘tTimeMods’

У меня есть структура tTimeMods, которая содержит переменные QDateTime. У меня есть функция, которая возвращает эту структуру. Я получаю одну ошибку компиляции, как упомянуто в заголовке, в следующей строке в CompareTimeMods (tTimeMods timeTypeFunction): —

QString pathString = appendWithImageName(timeTypeFunction.dateTimeMod1);

Подскажите пожалуйста, как решить эту проблему? Вот мой код: —

mainwindow.h

#define UPDATED_IMAGE_STORAGE_PATH "E:\\QT1\\timeStampWithDateModified\\timeStampWithDateModified\\updatedRefImg.jpg"#define SLEEP_TIME 2000
typedef struct
{
QDateTime dateTimeMod1;
QDateTime dateTimeMod2;
}tTimeMods;
tTimeMods timeTypeFunction, timeTypeMain;
tTimeMods findTimeModified();                           //returns a struct
void compareTimeMods(tTimeMods timeTypeFunction);       //takes struct as parameter
QString appendWithImageName(tTimeMods timeTypeFunction);//takes struct as parameter

mainwindow.cpp

tTimeMods findTimeModified()
{
QString myFileName = UPDATED_IMAGE_STORAGE_PATH;
QFileInfo info(myFileName);

/*find last date modified*/
//QDateTime dateTimeMod1, dateTimeMod2;
timeTypeFunction.dateTimeMod1 = info.lastModified();
timeTypeFunction.dateTimeMod2 = info.lastModified();

/*find last time modified*/
//QDateTime timeMod1, timeMod2;
//    timeTypeFunction.timeMod1 = (timeTypeFunction.dateTimeMod1).time();
//    timeTypeFunction.timeMod2 = timeTypeFunction.dateTimeMod2.time();

/*return the time part of date time*/
qDebug()<< "dateTimeMod1: " << timeTypeFunction.dateTimeMod1.toString() << endl << "dateTimeMod2: "<< timeTypeFunction.dateTimeMod2.toString();
//    qDebug()<< "timeMod1: " << timeTypeFunction.timeMod1.toString() << endl << "timeMod2: "<< timeTypeFunction.timeMod2.toString();
return(timeTypeFunction);
}

void compareTimeMods(tTimeMods timeTypeFunction)
{
//if(timeMod2 > timeTypeFunction)
if(timeTypeFunction.dateTimeMod2 > timeTypeFunction.dateTimeMod1)
{
timeTypeFunction.dateTimeMod1 = timeTypeFunction.dateTimeMod2;
QString pathString = appendWithImageName(timeTypeFunction.dateTimeMod1);
shiftToRepository(pathString);
}
}

QString appendWithImageName(tTimeMods timeTypeFunction)
{
/*appending just the timeMod with the path & image name*/
QString path = QString("E:\\QT1\\timeStampWithDateModified\\timeStampWithDateModified\\backUp\\updatedRefImg[%1].jpg").arg(timeTypeFunction.dateTimeMod1.toString());
return path;
//qDebug()<< "path: " << path;
}

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//QDateTime timeModified = findDateModified();    //CHECK->this shud give two QDateTime variables to compateTimeMods
timeTypeMain = findTimeModified();
while(1)
{
Sleep(SLEEP_TIME);
compareTimeMods(timeTypeMain);
}
}

0

Решение

Ваш appendWithImageName() функция требует переменную типа tTimeMods (такие как timeTypeFunction).

Вместо этого вы передаете переменную timeTypeFunction.dateTimeMod1 который имеет тип QDateTimeотсюда и ошибка.

Это выглядит как ваш предполагаемый вызов должен быть изменен с:

QString pathString = appendWithImageName(timeTypeFunction.dateTimeMod1);

чтобы:

QString pathString = appendWithImageName(timeTypeFunction);

с тех пор appendWithImageName() функция сам извлекает информацию из dateTimeMod1 член структуры перешел к нему.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]