2013-11-02 8 views
0

mmmm YYYY 형식의 문자열로 현재 날짜를 QDate로 검색하려고합니다. 그러나 QDate :: currentDate 인수를 전달할 수 없습니다. 또 다른 문제는 내가 전달하는 함수 인자가 QString인데, 이는 g ++에서 변환 오류가 발생한다는 것을 의미합니다. 이 문제를 어떻게 해결할 수 있습니까?Qt - 현재 날짜를 mmmm YYYY 형식으로 (문자열로)

다음

순간에 코드 :

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

이 스레드의 고통을 해결할 수 있습니다 : http://stackoverflow.com/questions/10194164/qt- seconds-to-dd-hh-ss –

+0

QDate :: toString ("mmmmm YYYYY")을 사용하지 않는 이유는 무엇입니까? – drescherjm

+0

@drescherjm 필요 없음 - 변환 오류가 다시 발생했습니다. – islandmonkey

답변

0

내가 전화 할 필요가 있다고 생각 :

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

나는 항상 내가 무엇 무엇입니까 컴파일러 오류가 이것이다

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

대신

UPDATE

만 연도 값을 출력해야하는 경우 :

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

아마도 사용자 요구 사항에 맞는 형식 문자열이 필요합니다. http://qt-project.org/doc/qt-5.0/qtcore/qdate.html#toString-2 – drescherjm

+0

네,하지만 MMMM yyyy 형식이어야합니다. – islandmonkey

+0

나는 왜 당신이 숫자로 날짜를 원하지만 그것들이 하나의 숫자로 표현 될 수없는 형식을 원하는지 매우 혼란 스럽다. – drescherjm