qt - 延迟发射信号
问题描述
我想要实现的目标是发出一个信号,但在实际发出之前将其延迟一段时间。
我的想法是这样的:
emitLater(QObject *obj, QEvent *event, int msDelay)
{
QTimer...
connect(timout to obj and event...
start timer with msDelay...
//maybe I might need a public timer of some sort but the idea is clear
}
因此,此方法因QEvent
参数失败,因为信号无法转换为QEvents
.
我尝试使用 std::bind 进行几种变体调用,但无法正常工作:
//the call
std::function<void(void)> signal = std::bind(&CustomPushButton_Header::clicked, &uiWindow->btnHeader_left); //just a random button to connect a valid signal
emitLater(signal, 2000);
//the function
emitLater(std::function<void(void)>, int msDelay)
{
qDebug() << "hi";
}
我希望有一个适用于所有对象和所有信号的解决方案......也许只有调用该函数的部分。我认为延迟会很容易。
或者你有一个不同的甚至更简单的方法。那样就好了。
我查看的一些来源:
解决方案
推荐阅读
- elasticsearch - 比较有和没有分数计算的查询
- react-native - ReactNative:适用于 Android 和 iOS 的自定义复选框
- regex - 正则表达式替换。井号标签“标签:”分隔符之后的所有单词
- python - 具有多个 groupby 的 pandas pivot 数据框
- angular - Angular Guard 重定向到根目录
- rust - 包装 Rustson 响应并避免重复特征的最“生疏”方式?
- opengl - OpenGL - 将多个图像加载到纹理
- database - 如何从问号绑定 pdo 键和值?
- sql - JOIN 中的条件 IIF
- qt - 我们可以在 QVideoWidget 中包含并显示其他一些小部件吗?