Определите сигналы, подключенные к данному слоту в QT

У вас есть несколько вариантов здесь - верхние 3, вероятно,

  1. Программируемый прокси-сервер типа puffing-billy
  2. Напишите класс промежуточного программного обеспечения стойки и укажите, чтобы использовать его в вашем config / environment / test.rb через config.middleware.use=
  3. Напишите приложение в стойку, чтобы обернуть тестируемое приложение, которое изменяет ответы перед их возвратом, и назначьте его Capybara.app

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

27
задан Robert Harvey 19 October 2010 в 21:17
поделиться

2 ответа

После изучения базы кода Qt и документации (я получил много полезных советов здесь и в других местах), я остановился на перехвате QObject :: connect (статическая перегрузка). Зачем? Что ж, другие решения требуют, чтобы вы знали, какие объекты предоставляют сигналы, копались в приватных полях или должны иметь отладочную сборку Qt. В конце концов, перехват QObject :: connect дает вам все, что связано в приложении, и вы можете тривиально отобразить обратно в слоты.

3
ответ дан Cody Brocious 28 November 2019 в 05:24
поделиться

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

Для целей отладки у вас есть:

void QObject::d umpObjectInfo ()

Дампы информации о сигнале подключения и т.д. для данного объекта к выходные данные отладки.

Эта функция полезна для отладки, но ничего не делает, если библиотека были скомпилированы в режиме релиза (т.е. без отладочной информации).

А к списку слотов подключен сигнал:

int QObject::receivers ( const char * signal ) const [protected]

Возвращает количество приемников подключен к сигналу.

MetaObject() дает вам QMetaMethod для слота, но у него нет информации о его соединениях.

Однако, если вы знаете объекты, вы можете пройти через все сигналы (используя метаобъедок, тестируя тип метода для сигнала)и постройте обратный индекс с помощью слотов receivers() дает вам.

29
ответ дан 28 November 2019 в 05:24
поделиться
Другие вопросы по тегам:

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