Czy istnieje sposób sprawdzenia, które sygnały są uruchamiane i czy jest do nich podłączone gniazdo? Idealnie, chcielibyśmy zobaczyć sygnały, nie tylko te z konkretnej klasy lub metody; na przykład QSignalSpy pozwala nam tylko śledzić określone sygnały konkretnych wystąpień.Debuguj sygnały Qt, gniazda i połączenia
W naszej aplikacji zaobserwowaliśmy problemy z wydajnością, ponieważ sygnał jest emitowany dwa razy z różnych komponentów. W końcu okazało się, że istnieje druga instancja klasy, która powinna być tam tylko raz. Wiedząc, które sygnały są emitowane, pomaga to w debugowaniu.
Sygnały są wywoływane przez QMetaObject::invoke*
, miałem nadzieję, że znajdę tam coś, do czego można się podłączyć, ale nie znalazłem nic oczywistego.
możliwy duplikat [Jak przechwycić WSZYSTKIE sygnały emitowane przez daną imprezę w QT?] (Http://stackoverflow.com/questions/2072013/how-to-intercept-all-signals-emitted-bya-a- given-event-in-qt) – exilit
Jeśli chcesz mieć tylko jedną instancję klasy, dlaczego nie użyłeś wzorca singleton do kontrolowania liczby obiektów? – Afshin