我偶然发现了一个我现在无法以优雅的方式解决的问题。情况:我有一个从我的应用程序外部调用的回调函数。回调函数必须更新一些 gui 对象。由于我不能repaint()
从另一个线程中调用(例如),我必须找到一些方法来向主事件循环添加函数调用,以便任务在某个时间执行.
一种可能的方法是使用它:
QMetaObject::invokeMethod(object, "functionName", Qt::QueuedConnection, Q_ARG(float, value));
但是,这只是给我的回应no such Method "Object::functionName"
。(这显然是一个谎言!)
我还阅读了有关将信号连接到插槽的信息,该插槽将通过将连接类型设置为从事件循环中调用Qt::QueuedConnection
。但是,使用QOjbect.:connect()
不起作用,因为我不知道信号需要获取哪个对象。尼斯会是这样的
QObject::emit(object, SIGNAL(function(flaot)), arg);