dynamic_cast отжирает много процессорного времени
Вообще смысл его в том, чтобы корректно приводить указатели базовых/производных классов в иерархии. Если преобразование не вписывается в иерархию, dynamic_cast вернет 0. Но такое отслеживание дорого обходится во время исполнения программы, чаще всего вызов dynamic_cast сопряжен с операциями сравнения строк (имен классов) - и чем больше классов в иерархии, тем тяжелей проходит каждый вызов dynamic_cast. Не стоит стрелять из пушки по воробьям, ведь кроме QAction в вашем слоте больше неоткуда появиться другим типам, если конечно вы не подключаете к нему с десяток сигналов от разных виджетов, что маловероятно )