c ++连接信号

时间:2010-07-02 16:43:14

标签: c++ qt connect signals

我有这个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

但是当我在tray.cpp文件中调用setPause();的thread.cpp文件中使用setPause();时,我怎么能这样做呢?

2 个答案:

答案 0 :(得分:0)

您只需要像平常一样连接每对物体的信号和插槽。看一下非常好的主题Qt's documentation。基本上是:

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

答案 1 :(得分:0)

试试Queued Connections。只提供连接Qt::QueuedConnection

的第五个参数