сигнал подключения с ++ - PullRequest
0 голосов
/ 02 июля 2010

Я получил этот файл thread.h;

#ifndef THREAD_H
#define THREAD_H

#include <QtGui>
#include <QString>

#include <tray.h>
class svThread : public QThread {

    public:
        bool getIsPaused();
        void checkSettings();
        virtual void run();
        void setPause(bool);
signals:
        void mySignal(bool);
};

#endif // THREAD_H

и получил приложение для лотка с именем tray: P, где я делаю нить;

svThread a;

, и язапуская его.

в tray.h Я также получил слот

class Tray : public QWidget
{
    Q_OBJECT

public:
    Tray();
    QMenu *trayIconMenu;

    public slots:
        void settings();
        void pause();
        void setPause(bool);

public:
    void createActions();
    void createTrayIcon();

    QAction *settingAction;
    QAction *quitAction;
    QAction *pauseAction;
    QSystemTrayIcon *trayIcon;
};

#endif

Но как мне это сделать, когда я использую setPause(); в файле thread.cpp, который он вызывает setPause(); в файле tray.cpp?

Ответы [ 2 ]

0 голосов
/ 02 июля 2010

Попробуйте Подключения в очереди .Просто укажите пятый аргумент подключения Qt::QueuedConnection

0 голосов
/ 02 июля 2010

Вам просто нужно подключить каждую пару сигналов объекта и слотов, как обычно.Взгляните на документацию Qt по этому вопросу, что очень хорошо.В основном это:

connect(threadObj, SIGNAL(mySignal(bool)), trayObj, SLOT(setPause(bool)));
...