Справка по базовой программе QTimer - PullRequest
0 голосов
/ 19 сентября 2011

Я пытаюсь создать простую игру, которая использует таймер, но я не могу заставить его работать.Выдает эту ошибку: «нет соответствующей функции для вызова 'QObject :: connect (QTimer * &, const char *, Time * &, const char *)'" теперь, что бы я ни делал, я не могу это исправить, помогите пожалуйста,Я только начал кодировать игру, когда столкнулся с этой ошибкой.Вот файлы, исключая неважный (на данный момент) qml-файл.

Main.cpp:

#include <QtGui/QApplication>
#include "qmlapplicationviewer.h"
#include "time.h"
#include <QObject>
#include <QTimer>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QmlApplicationViewer viewer;
    viewer.setOrientation(QmlApplicationViewer::ScreenOrientationLockLandscape);
    viewer.setMainQmlFile(QLatin1String("qml/RaakGame/main.qml"));
    viewer.showExpanded();

    Time *timmer = new Time;

    QTimer *timer = new QTimer(0);
    QObject::connect(timer, SIGNAL(timeout()), timmer, SLOT(ShowTime()));
    timer->start(1000);

    return app.exec();
}

time.h:

#ifndef TIME_H
#define TIME_H

class Time
{

public:
    Time();

private slots:
    void ShowTime();

signals:
    int setTime();

};

time.cpp:

#include "time.h"

int theTime = 60;

Time::Time()
{
    ShowTime();
}

void Time::ShowTime()
{
theTime--;
}

int Time::setTime()
{
    return theTime;
}

#endif // TIME_H

Ответы [ 2 ]

8 голосов
/ 19 сентября 2011

Ваша реализация Time не объявляет его QObject, поэтому вы не можете не подключать слоты или сигналы от него.Вам нужно наследовать от QObject (или, возможно, QWidget, если вы хотите рисовать на экране), а затем включить оператор Q_OBJECT, который создает несколько необходимых вещей.

class Time : public QWidget
{

Q_OBJECT

public:
    Time();

private slots:
    void ShowTime();

signals:
    int setTime();

};
1 голос
/ 19 сентября 2011

Я заметил, что ваши классы не содержат определенный макрос Q_OBJECT. Это может помочь вашим усилиям.

class Time
{
    Q_OBJECT

public Time() 
    .
    .
    .
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...