2010-12-07 10 views
7

Wir haben eine Menge Namespace-Refactoring durchgeführt. Ein großes Problem für uns ist nun, dass wir nur zur Laufzeit prüfen können, ob wir falsche Signal/Slot-Verbindungen haben.Überprüfung aller Qt-Signal/Slot-Verbindung

Gibt es ein externes Tool, Code-Analysator oder eine Methode, mit der wir alle Signal/Slot-Verbindung auf einmal überprüfen können?

Wir denken über Froglogic Squish nach, aber wir sind nicht ganz sicher, ob Squish uns in diesem ausführlichen Test helfen kann.

Vielen Dank im Voraus, Lars

Antwort

1

Es gibt eine Sache, die für Sie nützlich sein könnten: Conan 1.0.0:. Es funktioniert nur auf Qt 4.6 und 4.7. Siehe topic @qtCentre

Auch kann ich Ihnen von Visual Assist X AddIn-Tool für MSVStudio 200x und 2010 von http://www.wholetomato.com/, empfehlen die viele Lösungen für Refactoring hat. Z.B .: Umbenennen-Tool:


alt text


Wenn Sie Kontrollkästchen "Kommentare und Strings" gesetzt wird es auch überall in Ihrem Code dieses Symbol umbenennen, in ganzer Lösung. Wenn Sie also korrekte Verbindungen haben und Namespaces und Klassen einfach umgestalten, kann Ihnen dieses Tool helfen. Ich hoffe es.

+1

Danke für den Rat, aber Conan nur nicht was wir brauchen. IT zeigt nur die Verbindung von derzeit instanzierten Widgets/Klassen an. Habe auch Probleme mit Modelldialogen. – Lars

0

Conan (sourceforge.net/projects/conanforqt/) wird Ihnen bei Ihrem Problem nicht helfen, da es nur bestehende Verbindungen zur Laufzeit untersuchen und überwachen kann.

Soweit ich weiß, gibt es kein Tool, das während der Kompilierzeit prüfen kann, ob alle Verbindungsdefinitionen gültig sind. Beachten Sie, dass dies wahrscheinlich nicht einmal durchführbar ist, da Verbindungen dynamisch aus lokalen Variablen, Eingabeargumenten usw. aufgebaut werden können.

Die einzige Option, die ich sehe, ist, alle Stellen zu finden, an denen Verbindungen hergestellt werden. Überprüfen Sie bei jeder Verbindung auf offensichtliche Probleme: const correct, Argumenttypen, keine Namen usw. Platzieren Sie einen Haltepunkt, und starten Sie das Debuggen. Jede falsche Verbindung wird in der Konsolenausgabe/std: err von Qt protokolliert.

Viel Glück

P. S .: Sie erwähnt

Auch Probleme mit Modell Dialoge

dies Conan Gegenstandslos? Wenn ja, kannst du mir Details geben, damit ich Conan updaten kann?

+1

Sorry für den Tippfehler, aber ich habe ein Problem mit _modal_dialoge. Wenn ein modaler Dialog im Fokus ist, kann ich im Conan-Widget nichts machen. – Lars