Why not using an wrapper, a cache to hold IP, port and others worker's members and repassing worker signals... Something like this:
class NetworkWorker : public QObject { Q_OBJECT public: NetworkWorker::NetworkWorker() { QTimer *timer = new QTimer(this); connect(timer, &QTimer::timeout, m_library, &Library::DoTask()); timer->start(50); } QString getIP() const; int getPort() const; QString getServerName() const; QStringList getKnownServers() const; public slots: void setIP(const QString &ip); void setPort(int port); signals: void ipChanged(const QString& ip); void portChanged(int port); private: Network *m_network; }; class NetworkWrapper : public QObject { Q_OBJECT public: NetworkWrapper(QObject* parent = 0) : QObject(parent), m_worker(new NetworkWorker), m_thread(new QThread(this)) { //Repass worker signals connect(m_worker, SIGNAL(ipChanged(const QString&)), this, SIGNAL(ipChanged(const QString&))); connect(m_worker, SIGNAL(portChanged(int)), this, SIGNAL(portChanged(int))); m_worker->moveToThread(m_thread); m_thread->start(); } ~NetworkWrapper() { m_thread->quit(); m_thread->wait(); delete m_worker; } QString getIP() const { return m_cache.ip; } int getPort() const { return m_cache.port; } public slots: void setIP(const QString &ip) { m_cache.ip = ip; QMetaObject::invokeMethod(m_worker, "setIP", Qt::QueuedConnection, Q_ARG(const QString &, m_cache.ip)); } void setPort(int port) { m_cache.port = port; QMetaObject::invokeMethod(m_worker, "setPort", Qt::QueuedConnection, Q_ARG(int, m_cache.port)); } signals: void ipChanged(const QString& ip); void portChanged(int port); private: NetworkWorker* m_worker; QThread* m_thread; struct Cache { QString ip; int port; } m_cache; } Hugo Drumond Jacob 2014-04-10 15:11 GMT-03:00 Thiago Macieira <thiago.macie...@intel.com>: > Em qui 10 abr 2014, às 12:17:15, K. Frank escreveu: > > But Thiago -- You, of all people! -- How's he then going to get his > > queued-event slot calls to run in the worker thread unless he calls > > ThreadClass::moveToThread (this) ?!!? > > I didn't read the entire email... > > -- > Thiago Macieira - thiago.macieira (AT) intel.com > Software Architect - Intel Open Source Technology Center > > _______________________________________________ > Interest mailing list > Interest@qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest >
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest