Russian Qt Forum

Qt => Вопросы новичков => Тема начата: helga1917 от Июль 31, 2013, 16:00



Название: [РЕШЕНО] QDateTime в окне не отображается дата
Отправлено: helga1917 от Июль 31, 2013, 16:00
Нужно вывести в окне текущую дату, но вместо этого появляется пустое окно. Что надо исправить?
datetime.h:

#include  DATETIME_H
#include DATETIME_H
#include <QWidget>
#include <QtGui>
#include <QDebug>
#include <QLabel>
classQDateTime
classQString
classQLabel
classQHBoxLayout
classCDateTime:publicQWidget
{
Q_OBJECT
public:
             CDateTime(QWidget *parent = 0);
~CDateTime();
};
#endief//DATETIME_H

datetime.cpp:
#include"datetime.h"

CDateTime::CDateTime(QWidget*parent)
                       : QWidget (parent)
{
}

CDateTime::~CDateTime()
{
}


main.cpp:
#include"datetime.h"
#include<QApplication>
int main ( int argc, char *argv[])
{
QApplication a (argc, argv);
CDateTime w;
QDateTime *myTimer = new QDateTime;
myTimer->currentDateTime();

QString str=myTimer->toString("yyyy.MM");
QLabel label;
label.setText(str);
QHBoxLayout *layout =  new  QHBoxLayout;
layout->addWidget(&label);
w.setLayout(layout);
w.show();

return a.exec();


Название: Re: QDateTime в окне не отображается дата
Отправлено: gil9red от Июль 31, 2013, 16:05
Используйте тег код )

Замените это:
Код:
QDateTime *myTimer = new QDateTime;
myTimer->currentDateTime();
QString str=myTimer->toString("yyyy.MM");

На вот это:
Код:
QString str = QDateTime::currentDateTime().toString("yyyy.MM");

Или на вот это:
Код:
QDateTime curDateTime = QDateTime::currentDateTime();
QString str = curDateTime.toString("yyyy.MM");


Метод currentDateTime() возвращает объект QDateTime, потому у вас не получалось отобразить текущее время :)


Название: Re: QDateTime в окне не отображается дата
Отправлено: helga1917 от Август 01, 2013, 08:14
Спасибо большое! все заработало!


Название: Re: [РЕШЕНО]QDateTime в окне не отображается дата
Отправлено: helga1917 от Август 01, 2013, 09:11
Вот другой пример, написала его как вы и советовали. НО! Тут такая же проблема, компилируется, но выходит пустое окно  ???

Код:
QString str1 = "15.08.2013  18:36";
QDateTime obj = QDateTime::fromString(str1, Qt::ISODate);
QString str2 = obj.toString(Qt::ISODate);

QLabel label;
label.setText(str2);


Название: Re: QDateTime в окне не отображается дата
Отправлено: mutineer от Август 01, 2013, 10:03
В ISODate вроде бы пробела не должно быть


Название: Re: QDateTime в окне не отображается дата
Отправлено: helga1917 от Август 01, 2013, 10:08
убрала пробел - тоже самое.
При переводе из строки в Дататайм какой-то косяк


Название: Re: QDateTime в окне не отображается дата
Отправлено: GreatSnake от Август 01, 2013, 10:13
Цитата: assistant
Qt::ISODate   1   ISO 8601 extended format: either YYYY-MM-DD for dates or YYYY-MM-DDTHH:MM:SS, YYYY-MM-DDTHH:MM:SSTZD (e.g., 1997-07-16T19:20:30+01:00) for combined dates and times.


Название: Re: QDateTime в окне не отображается дата
Отправлено: helga1917 от Август 01, 2013, 10:25
Цитата: assistant
Qt::ISODate   1   ISO 8601 extended format: either YYYY-MM-DD for dates or YYYY-MM-DDTHH:MM:SS, YYYY-MM-DDTHH:MM:SSTZD (e.g., 1997-07-16T19:20:30+01:00) for combined dates and times.

Можно попроще подсказку?


Название: Re: QDateTime в окне не отображается дата
Отправлено: mutineer от Август 01, 2013, 10:28
Подсказка проще - твоя строка совсем не похожа на ISODate


Название: Re: QDateTime в окне не отображается дата
Отправлено: GreatSnake от Август 01, 2013, 10:33
Можно попроще подсказку?

Код
C++ (Qt)
QString str1 = "15.08.2013  18:36";
QDateTime obj = QDateTime::fromString(str1, "dd.MM.yyyy  HH:mm");
 


Название: Re: QDateTime в окне не отображается дата
Отправлено: helga1917 от Август 01, 2013, 10:43
 :)Ура!!! Заработало!
Спасибо!