Как прервать ВСЕ сигналы, испускаемые данным событием в QT?

Я могу предположить, что могли бы быть довольно многие из них в зависимости от события, но в то же время я предполагаю, что это может быть лучшим способом отладить, и интересный урок.

Почему мне был бы нужен он? Я использую некоторый пользовательский класс на основе QWidget, который не расширяется когда я de-присоединение a QDockWidget базирующийся в том же окне. Знание, какие сигналы испускаются, когда этот виджет прикрепления является de-attached, помогло бы мне к, выбрал, какой метод я должен перезаписать в своем пользовательском классе.

Другими словами, я не хочу проверять каждый возможный сигнал из документации, но просто видеть, какие сигналы испускаются, когда я выполняю некоторое действие в своем приложении.

9
задан ymoreau 21 August 2017 в 11:01
поделиться

3 ответа

Это невозможно с любыми публичными API.

Но если вы поместите свой код в тест на основе qtestlib, вы можете запустить тест устройства с -VS , чтобы распечатать каждый излучаемый сигнал.

10
ответ дан 4 December 2019 в 10:04
поделиться

Я не думаю, что это возможно с Qt. Вы можете

  • переписать все сигналы класса, используя QmetaObject :: Метод и QmetameThod :: MethodType;
  • Прикрепите одно из ваших собственных слотов для всех этих сигналов;
  • Check, который вызывал слот с помощью Qobject :: Отправитель Отказ

Но я застрял после этого. Я не думаю, что, кроме отправителя, любая информация может быть получена о том, как появился слот.

2
ответ дан 4 December 2019 в 10:04
поделиться

Вы можете захотеть взглянуть на класс QSignalSpy. Я думаю, что вам нужно вручную подключить сигнал, за которым вы хотите шпионить.

7
ответ дан 4 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: