Несколько недель назад наш стажер случайно подключил сигнал к слоту более одного раза. Идея заключалась в том, что при одном условии у вас будет слот, подключенный к сигналу, а при другом условии вы отключите его. Когда вы меняли режимы, вы выполняли соответствующую работу.
Ну, он забыл отключить при необходимости. Поэтому каждый раз, когда вы меняли режимы, у вас было новое соединение со слотом.
Конечный результат? 1 соединение == 1 звонок в слот. 2 соединения == 2 звонка в слот. 3 соединения == 3 вызова в слот и т. Д. Эти вызовы происходили «одновременно» (на самом деле я знаю, что они этого не сделали, поскольку они находятся в одном потоке событий, но я имею в виду, что все вызовы обрабатывались последовательно).
Как @Job указывает в одном из своих комментариев (он заслуживает похвалы, поэтому, пожалуйста, не отзывайте меня за его работу), Qt::UniqueConnection
предотвратит эту проблему.