Russian Qt Forum

Qt => Вопросы новичков => Тема начата: helga1917 от Октябрь 31, 2013, 09:25



Название: Сигнально - слотовое соединение потоков
Отправлено: helga1917 от Октябрь 31, 2013, 09:25
Здравствуйте, пытаюсь передать значение из одного потока в другой. Но компилятор пишет, что не находит слот. Что делаю не так?

thread.h:
Код:
#include <QThread>

class thread : public QThread

{ Q_OBJECT

public:
    thread();
    int value;
    void run()
    {     for (int i=0; i<10; i++)
           {
             value = i;
             emit send_value (value);
            }
     }
signals:
         void send_value (int);
};

window.h:
 
Код:
#include <QMainWindow>
#include <QDebug>

class window : public QMainWindow
{
   Q_OBJECT
public:
        window();
public slots:
        void print (int g)
         {
            qDebug() << g << "\n";
          }
};

main.cpp:
Код:
#include <QApplication>
#include "window.h"
#include "thread.h"

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

         window win;
         thread obj;

        QObject::connect (&obj, SIGNAL ( send_value(int) ), &obj , SLOT ( print(int) ));

        win.show();
        obj.start();

return a.exec();
}

опечатка  :) все работает
 QObject::connect (&obj, SIGNAL ( send_value(int) ), &obj &win , SLOT ( print(int) ));