Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Excel VBA, CAD, Софт, ОС, Windows, Ubuntu, Android, VPS
Win Api, Assembler, C++, Java, Pascal, Lazarus, Delphi, OpenGL, DirectX
C#, Qt, .NET, ASP.NET, Windows Forms, ADO.NET, Framework, WPF, UWP, WinRT, XAML
HTML, CSS, JavaScript, Ajax, PHP, Perl, Python, Ruby, SQL, WordPress, API, XML, JSON, ActionScript, Flash

Ответ
 
Опции темы
Старый 09.01.2017, 00:49   #1
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Адрес: Димитровград
Сообщений: 449
Репутация: 33

skype: ilya10009
По умолчанию Qt завершение консольной программы

консольная программа в main создается объект унаследованный от QObject
программа завершается с кодом -1073741510. и до деструктора дело не доходить. В чем дело? И как вылечить?

пробовал так, все равно завершается не корректно
Код:

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    Object *ob = new Object;

    int result = a.exec();
    //return a.exec();

    delete ob;

    return result;
}

но ведь delete должен вызывать деструктор
__________________
eremeew.ilya@yandex.ru
SAMOUCHKA вне форума   Ответить с цитированием
Старый 09.01.2017, 02:53   #2
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Адрес: Димитровград
Сообщений: 449
Репутация: 33

skype: ilya10009
По умолчанию

в общем тут нужно вызывать слот quit(), класса QCoreApplication.
попробую отлавливать события клавиатуры. что бы скажем при нажатии на Esc программа закрывалась

но видимо что то не так делаю.
вот класс в который передаются события
Код:

class MyEvent : public QObject
{
    Q_OBJECT

public:
    MyEvent(QObject *ob = 0) : QObject(ob)
    {
    }

    bool event(QEvent *e)
    {
        qDebug()<<"event"<<e->type();
        return false;
    }

signals:
    void quit();
};

вот так я передаю события в main()
Код:

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    MyEvent *my_event = new MyEvent;
    //QObject::connect(my_event, SIGNAL(quit()), &a, SLOT(quit()));

    QEvent *event_key = new QEvent(QEvent::KeyPress);
    QCoreApplication::postEvent(my_event, event_key);

    int result = a.exec();

    return result;
}

но при нажатии на клаву qDebug() ни чего не выводит.
Может я вообще ахинею напилил? Честно говоря с событиями мало дела имел. Помогите разобратся
__________________
eremeew.ilya@yandex.ru

Последний раз редактировалось SAMOUCHKA; 09.01.2017 в 03:34.
SAMOUCHKA вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с написанием консольной программы в Delphi Inori Помощь студентам 7 10.03.2015 00:13
Скрытый запуск консольной программы. Prizrak86 C# (си шарп) 3 03.11.2011 22:25
Текст консольной Delphi-программы trafficj Помощь студентам 5 13.07.2011 14:03
Захват консольной программы в свою Человек_Борща Общие вопросы Delphi 4 29.12.2010 19:58
не читает результат работы консольной программы Consol Работа с сетью в Delphi 0 21.08.2009 12:21




10:16.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru