我想将一个信号连接到qt中同一个线程的两个插槽。可能吗。
connect (closL[0], SIGNAL(clicked()),signalMapperL, SLOT(map())) ;
signalMapperL -> setMapping (closL[0], PIDL) ;
connect (signalMapperL, SIGNAL(mapped(int)), this, SLOT(ResumeMic(int))) ;
connect (closL[0], SIGNAL(clicked()),signalMapperL, SLOT(map())) ;
signalMapperL -> setMapping (closL[0], PIDL) ;
connect (signalMapperL, SIGNAL(mapped(int)), this, SLOT(closeAppL(int))) ;
我想在我的应用中的单个相同按钮上提供暂停/恢复选项
thanku
答案 0 :(得分:3)
我不确定你信号映射器的目的,但是......
您可以根据需要建立与信号的连接数。
连接的插槽将按连接顺序调用。如果多次连接相同的插槽,除非您指定Qt :: UniqueConnection作为连接参数,否则将多次调用它。
如果插槽是直接连接的(当发送器和接收器位于同一个线程时默认),则在发出信号时同步调用插槽。
如果在生活在不同线程中的QObject上触发了插槽,则不会直接进行调用,而是使用事件循环(=>排队连接)。您也可以为生活在同一线程中的QObject强制排队连接,这有时需要通过将Qt :: QueuedConnection传递给连接来避免插槽火灾序列问题。
希望这能回答你的问题。