Я думаю, что единственный безопасный способ сделать это - убедиться, что вы обращаетесь к своим QWidgets только из основного потока / потока GUI (то есть потока, в котором выполняется цикл обработки событий Qt, внутри QApplication :: exec ()).
Если у вас есть код, который выполняется в другом потоке, и этот код хочет, чтобы QLabels отображался / скрывался / что угодно, тогда этот код должен создать объект QEvent (или его подкласс) и вызвать qApp-> postEvent () для отправки этого объекта в основной поток.Затем, когда цикл событий Qt выбирает и обрабатывает это QEvent в основном потоке, это точка, в которой ваш код может безопасно выполнять действия с QLabels.
В качестве альтернативы (и, возможно, более просто), код вашего потокамог бы послать сигнал между потоками (как описано здесь ) и позволить Qt обработать внутреннюю запись событий.Это может быть лучше для вашей цели.