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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Необходимо вручную завершить работу консольного приложения  (Прочитано 2537 раз)
merke
Гость
« : Ноябрь 27, 2010, 14:39 »

Всем привет!
Столкнулся с очередной проблемой.

Мне нужно в определенный момент времени убить мою программу, делаю я это так, например:

main.cpp
Код:
#include <QtCore/QCoreApplication>
#include "myclass.h"

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    MyClass *cla = new MyClass();
    QObject::connect(cla, SIGNAL(cl()), qApp, SLOT(quit()));
    cla->ex();
    return a.exec();
}

myclass.h
Код:
#ifndef MYCLASS_H
#define MYCLASS_H
#include <QObject>


class MyClass : public QObject
{
    Q_OBJECT
public:
    MyClass(QObject *parent = 0);

    void ex();
signals:
    void cl();

};

#endif // MYCLASS_H

myclass.cpp

Код:
#include "myclass.h"

MyClass::MyClass(QObject *parent) : QObject (parent)
{

}

void MyClass::ex()
{
    emit cl();
}


Но такой фокус не проходит. Как же мне решить данную проблему?
Записан
asvil
Гость
« Ответ #1 : Ноябрь 27, 2010, 14:58 »

Слот quit посылает сообщение о выходе, которое должно обработаться в exec().
Скорее всего вы вызываете слот слишком рано.
Записан
merke
Гость
« Ответ #2 : Ноябрь 27, 2010, 16:01 »

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


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