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

2020-07-11 12:44:51 +08:00
 sr0tzo

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,但是槽只在第一次执行了,后面再也不能触发,请哪位大神指点一下问题可能出在哪里?

2446 次点击
所在节点    Qt
3 条回复
imn1
2020-07-11 12:57:42 +08:00
不懂 C++,只玩 pyqt
你这是什么控件,日历?拖动条?
多次改变的数据,理论上触发事件应该是 valueChanged,没看到这个
whi147
2020-07-12 09:16:01 +08:00
一般来说是函数的生命周期结束,被自动回收,你下面这个信号槽链接是否放在构造函数这里
acainiao
2020-07-12 16:21:07 +08:00
你们都用 qt 做什么呀? qt 现在不是要收费了?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/689148

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX