我有一个Qt/C++应用程序,其中包括一个常规的GUI线程和一个网络线程。网络线程使用外部库,该库具有自己的基于select()的事件循环...因此,网络线程不使用Qt的事件系统。
目前,当发生各种事件(例如成功连接)时,网络线程只会发出信号。我认为这样做还可以,因为信号/插槽机制会正确地将信号发布到GUI线程。
现在,我需要让网络线程能够调用GUI线程来提问。例如,网络线程可能需要GUI线程请求弹出对话框以请求密码。
有人知道适合这样做的机制吗?
我目前最好的想法是让网络线程使用QWaitCondition等待,在发出对象后(
这种方法可行吗?还是有其他选项?
目前,当发生各种事件(例如成功连接)时,网络线程只会发出信号。我认为这样做还可以,因为信号/插槽机制会正确地将信号发布到GUI线程。
现在,我需要让网络线程能够调用GUI线程来提问。例如,网络线程可能需要GUI线程请求弹出对话框以请求密码。
有人知道适合这样做的机制吗?
我目前最好的想法是让网络线程使用QWaitCondition等待,在发出对象后(
emit passwordRequestedEvent(passwordRequest);
)。passwordRequest对象将具有特定QWaitCondition的句柄,因此可以在做出决策后发出信号。这种方法可行吗?还是有其他选项?