V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sr0tzo
V2EX  ›  Qt

Qt 槽只能触发一次,后续 emit 再无法执行槽函数

  •  
  •   sr0tzo · 2020-07-11 12:44:51 +08:00 · 2319 次点击
    这是一个创建于 1378 天前的主题,其中的信息可能已经有所发展或是发生改变。

    void LeftPanelWidget::SearchDateOfDay(const QString &id, const QDate date) { QTime time = QTime(0, 0, 0); QDateTime datetime = QDateTime(date, time); int timestamp = datetime.toTime_t();

    QString channelId = id;
    emit sglQueryTimeline(channelId, timestamp);
    qDebug() << "hahahaha ";
    

    }

    connect(this, &LeftPanelWidget::sglQueryTimeline, [this](QString &id, int ts)
    {
                qDebug() << "query timeline "  << id << "  " << ts;
    });
    

    如上面代码所示,我通过一个控件调用 SearchDateOfDay,单步跟下来确认每次都会 emit,但是槽只在第一次执行了,后面再也不能触发,请哪位大神指点一下问题可能出在哪里?

    3 条回复    2020-07-12 16:21:07 +08:00
    imn1
        1
    imn1  
       2020-07-11 12:57:42 +08:00
    不懂 C++,只玩 pyqt
    你这是什么控件,日历?拖动条?
    多次改变的数据,理论上触发事件应该是 valueChanged,没看到这个
    whi147
        2
    whi147  
       2020-07-12 09:16:01 +08:00 via iPhone
    一般来说是函数的生命周期结束,被自动回收,你下面这个信号槽链接是否放在构造函数这里
    acainiao
        3
    acainiao  
       2020-07-12 16:21:07 +08:00 via iPhone
    你们都用 qt 做什么呀? qt 现在不是要收费了?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1138 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 23:37 · PVG 07:37 · LAX 16:37 · JFK 19:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.