Russian Qt Forum
Ноябрь 26, 2024, 13:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] QDateTime в окне не отображается дата  (Прочитано 5885 раз)
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();
« Последнее редактирование: Август 01, 2013, 11:53 от helga1917 » Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Июль 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, потому у вас не получалось отобразить текущее время Улыбающийся
« Последнее редактирование: Июль 31, 2013, 16:10 от gil9red » Записан

helga1917
Гость
« Ответ #2 : Август 01, 2013, 08:14 »

Спасибо большое! все заработало!
Записан
helga1917
Гость
« Ответ #3 : Август 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);
Записан
mutineer
Гость
« Ответ #4 : Август 01, 2013, 10:03 »

В ISODate вроде бы пробела не должно быть
Записан
helga1917
Гость
« Ответ #5 : Август 01, 2013, 10:08 »

убрала пробел - тоже самое.
При переводе из строки в Дататайм какой-то косяк
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #6 : Август 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.
Записан

Qt 5.11/4.8.7 (X11/Win)
helga1917
Гость
« Ответ #7 : Август 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.

Можно попроще подсказку?
Записан
mutineer
Гость
« Ответ #8 : Август 01, 2013, 10:28 »

Подсказка проще - твоя строка совсем не похожа на ISODate
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #9 : Август 01, 2013, 10:33 »

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

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

Qt 5.11/4.8.7 (X11/Win)
helga1917
Гость
« Ответ #10 : Август 01, 2013, 10:43 »

 :)Ура!!! Заработало!
Спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.073 секунд. Запросов: 23.