Qt — получение текущей даты в формате мммм ГГГГ (в виде строки)

Я пытаюсь получить текущую дату в виде строки в формате мммм ГГГГ с QDate. Тем не менее, я не могу передать QDate :: currentDate с аргументом. Другая проблема заключается в том, что аргумент функции, который я передаю, является QString, что означает, что g ++ генерирует ошибки преобразования. Как можно обойти это?

Вот код на данный момент:

QDate date = QDate::currentDate();
Core::MessageUser(this->CurrentEdit->User, warning, QString::number(date),
title, true, dependency);

Ошибка компилятора, который я постоянно получаю, что я делаю, это:

mainwindow.cpp: In member function 'bool Huggle::MainWindow::Warn(QString, Huggle::RevertQuery*)':
mainwindow.cpp:463:77: error: no matching function for call to 'QString::number(QDate&)'
Core::MessageUser(this->CurrentEdit->User, warning, QString::number(date),
^
mainwindow.cpp:463:77: note: candidates are:
In file included from /usr/include/qt5/QtCore/qobject.h:48:0,
from /usr/include/qt5/QtWidgets/qwidget.h:46,
from /usr/include/qt5/QtWidgets/qmainwindow.h:45,
from /usr/include/qt5/QtWidgets/QMainWindow:1,
from mainwindow.h:14,
from mainwindow.cpp:11:
/usr/include/qt5/QtCore/qstring.h:556:20: note: static QString QString::number(int, int)
static QString number(int, int base=10);
^
/usr/include/qt5/QtCore/qstring.h:556:20: note:   no known conversion for argument 1 from 'QDate' to 'int'
/usr/include/qt5/QtCore/qstring.h:557:20: note: static QString QString::number(uint, int)
static QString number(uint, int base=10);
^
/usr/include/qt5/QtCore/qstring.h:557:20: note:   no known conversion for argument 1 from 'QDate' to 'uint {aka unsigned int}'
/usr/include/qt5/QtCore/qstring.h:558:20: note: static QString QString::number(long int, int)
static QString number(long, int base=10);
^
/usr/include/qt5/QtCore/qstring.h:558:20: note:   no known conversion for argument 1 from 'QDate' to 'long int'
/usr/include/qt5/QtCore/qstring.h:559:20: note: static QString QString::number(ulong, int)
static QString number(ulong, int base=10);
^
/usr/include/qt5/QtCore/qstring.h:559:20: note:   no known conversion for argument 1 from 'QDate' to 'ulong {aka long unsigned int}'
/usr/include/qt5/QtCore/qstring.h:560:20: note: static QString QString::number(qlonglong, int)
static QString number(qlonglong, int base=10);
^
/usr/include/qt5/QtCore/qstring.h:560:20: note:   no known conversion for argument 1 from 'QDate' to 'qlonglong {aka long long int}'
/usr/include/qt5/QtCore/qstring.h:561:20: note: static QString QString::number(qulonglong, int)
static QString number(qulonglong, int base=10);
^
/usr/include/qt5/QtCore/qstring.h:561:20: note:   no known conversion for argument 1 from 'QDate' to 'qulonglong {aka long long unsigned int}'
/usr/include/qt5/QtCore/qstring.h:562:20: note: static QString QString::number(double, char, int)
static QString number(double, char f='g', int prec=6);
^
/usr/include/qt5/QtCore/qstring.h:562:20: note:   no known conversion for argument 1 from 'QDate' to 'double'
make: *** [mainwindow.o] Error 1

0

Решение

Я думаю, вам нужно позвонить:

Core::MessageUser(this->CurrentEdit->User, warning, date.toString(),
title, true, dependency);

вместо

ОБНОВИТЬ

Если вам нужно распечатать только значение года:

Core::MessageUser(this->CurrentEdit->User, warning, QString::number(date.year()),
title, true, dependency);
0

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

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

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