Доброго времени суток! Написал небольшой класс и в нем QTimer, но при вызове start() приложение входит в вечный цикл. С моей точки зрения, все норм, но видимо, что-то я не учел.
myclass.h
#include <QObject>
#include <QTimer>
class MyClass: public QObject
{
Q_OBJECT
public:
MyClass(QObject *parent = 0);
void start();
virtual ~MyClass();
public slots:
void showMessage();
private:
QTimer *timer;
};
myclass.cpp
#include "myclass.h"
#include <iostream>
MyClass::MyClass(QObject *p): QObject(p)
{
timer = new QTimer(this);
QObject::connect(timer, &QTimer::timeout, this, &MyClass::showMessage);
}
void MyClass::showMessage()
{
timer->stop();
std::cout << "Hello World!";
}
void MyClass::start()
{
timer->start(1);
}
MyClass::~MyClass()
{
delete timer;
}
main.cpp
#include <QCoreApplication>
#include "myclass.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
MyClass my;
my.start();
return a.exec();
}
Не понимаю в чём вопрос. У меня этот код собирается и работает корректно. Если у Вас не выводится "Hello World!", то это проблемы как я думаю именно с выводом (оно, скорее всего, выводит, просто Вы не видите куда). Можете попробовать создать Widget
что бы было точно видно-заметно. Если вопрос в том, почему приложение не останавливается - а почему оно должно? Сам таймер останавливается, но цикл обработки событий продолжается. Можете попробовать дописать например exit(0)
в ваш слот - тогда приложение завершится (с кодом 0).
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Здравствуйте! Пишу свой класс Array, который представляет из себя массивПри вызове метода append() программа выдаёт исключение
Хочу создать стек с элементами класса Disk в классе Pole, но получаю ошибку: синтаксическая ошибка: отсутствие ";" перед "<"
Большие числа реализую как массив unsigned __int64[8]Как реализовать операции сложения и умножения для таких чисел? Нашел пример алгоритма на сайте,...