use*_*020 3 c++ qt signals-slots
例如,我有一个功能
void A::fun()
{
do_1();
emit signal_1();
do_2();
emit signal_2();
do_3();
}
Run Code Online (Sandbox Code Playgroud)
signal_1和之间有联系slot_1; 之间signal_2和slot_2.当在slot_1和slot_2叫什么名字?一些答案选项:
slot_1之前slot_2;slot_1之后调用do_1并被slot_2调用
do_2或其他人.
对于直接连接(默认情况下不从不同的线程连接)
立即调用插槽,因此结果应为:
do_1
slot_1
do_2
slot_2
do_3
Run Code Online (Sandbox Code Playgroud)
对于从同一线程调用的排队连接(需要手动设置)
必须结束函数的执行,然后主循环才能调用插槽
do_1
do_2
do_3
slot_1
slot_2
Run Code Online (Sandbox Code Playgroud)
对于从不同线程调用的排队连接
由于线程问题,它更复杂.结果可以类似于第一个或第二个示例(或组合).你无法保证它会有什么样的通话顺序!
do_1
slot_1
do_2
do_3
slot_2
Run Code Online (Sandbox Code Playgroud)
在这里您可以看到Qt :: ConnectionType的描述
| 归档时间: |
|
| 查看次数: |
339 次 |
| 最近记录: |