查看完整版本: [-- 怎么实现跨越对象异步调用信号-槽?Qt::QueuedConnection设置没用 --]

QTCN开发网 -> Qt基础编程 -> 怎么实现跨越对象异步调用信号-槽?Qt::QueuedConnection设置没用 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

rt2017 2017-12-06 15:55

怎么实现跨越对象异步调用信号-槽?Qt::QueuedConnection设置没用

为什么使用 Qt::QueuedConnection设置队列异步处理的时候,通过debug发现,居然不是异步处理,而是同步处理,这是什么回事????

class object1: public QMainWindow
{
    Q_OBJECT    
public slots:
    bool onMessageLogSlot(QString message);
};


class object2:public QObject
{
    Q_OBJECT
signals:
    void SendSignals(QString messge);
}

第一步:QObject::connect(&object2, &object2::SendSignals, object1, &object1::onMessageLogSlot, Qt::QueuedConnection);

第二步:object2:emit SendSignals(QString::fromLocal8Bit(messge.data()));

第三步:
bool object1::onMessageLogSlot(QString  message)
{
       //信号处理
    return true;
}



kaon 2017-12-06 21:54
你是如何观察判定异步/同步的?

yuyu414 2017-12-07 08:28
不同线程才可以异步,在一个线程里怎么异步


查看完整版本: [-- 怎么实现跨越对象异步调用信号-槽?Qt::QueuedConnection设置没用 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled