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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Вызов деструктора  (Прочитано 10476 раз)
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #15 : Ноябрь 21, 2013, 20:32 »

только вот на 4.7.4 то выдает, то не выдает DESTROYED  Непонимающий  Непонимающий  Непонимающий  Злой
А если в конце qDebug добавить << flush?
Записан
OKTA
Гость
« Ответ #16 : Ноябрь 21, 2013, 20:34 »

только вот на 4.7.4 то выдает, то не выдает DESTROYED  Непонимающий  Непонимающий  Непонимающий  Злой
А если в конце qDebug добавить << flush?
Без изменений...  В замешательстве
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #17 : Ноябрь 21, 2013, 20:36 »

А как это проявляется?
Записан
OKTA
Гость
« Ответ #18 : Ноябрь 21, 2013, 20:41 »

ну так же, то есть в консоли фраза, то нет  Непонимающий
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #19 : Ноябрь 21, 2013, 20:43 »

Попробуйте другой способ индикации. Например, создавайте файл.
Деструктор должен вызываться.
Записан
Majestio
Гость
« Ответ #20 : Ноябрь 21, 2013, 20:45 »

Без изменений...  В замешательстве

Для чистоты эксперимента добавьте (я про Qt 5.0.1, у вас там может быть иначе):

Код:
// .h - file
void myMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg);

// .cpp - file
void myMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
    QFile outFile(QCoreApplication::applicationDirPath()+"\\"+QCoreApplication::applicationName()+".log");
    outFile.open(QIODevice::WriteOnly | QIODevice::Append);
    QTextStream ts(&outFile);
    ts << QDateTime::currentDateTime().toString("dd/MM/yyyy (HH:mm:ss) : ") << msg << endl;
    if (type == QtFatalMsg) abort();
}

// in main() { }

qInstallMessageHandler(myMessageHandler);
w.show();
return a.exec();

Посмотрите, будет ли дебаг выливаться в файл.
Записан
OKTA
Гость
« Ответ #21 : Ноябрь 21, 2013, 20:52 »

Да, с файлом все работает)) Спасибо)) меньше буду верить просто qDebug Впредь))))  Веселый
Записан
Majestio
Гость
« Ответ #22 : Ноябрь 21, 2013, 20:58 »

Да незашта. Но ситуация странная.
Записан
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



Просмотр профиля
« Ответ #23 : Ноябрь 22, 2013, 00:11 »

А если так в деструкторе написать, тоже не всегда выводит?
Код
C++ (Qt)
mainy::~mainy() {
   //
   qDebug("DESTROYED");
}
И то же самое, но не подключая <QDebug>.
Записан

Пока сам не сделаешь...
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #24 : Ноябрь 22, 2013, 13:14 »

попробуй setbuf(stderr, 0); в начале main()
Записан
OKTA
Гость
« Ответ #25 : Ноябрь 22, 2013, 20:04 »

ни так, ни так не помогает  Веселый
у меня такое ощущение, что это связано с отсутствием у qDebug штуки flush. Может такое быть?
Записан
OKTA
Гость
« Ответ #26 : Ноябрь 22, 2013, 20:06 »

std::cout отрабатывает как надо
Записан
Majestio
Гость
« Ответ #27 : Ноябрь 23, 2013, 12:17 »

Ради интереса, попробуй еще вот так:

qDebug() << "Message" << endl;

Кстати, в инете пролетали подобные жалобы.
Мож имеет смысл на Qt 5.x переходить? (5.1.1 не советую, пока стабильная 5.0.1)
« Последнее редактирование: Ноябрь 23, 2013, 12:22 от Majestio » Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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