Qt的.NET Reflector有什么用吗?

时间:2011-01-10 20:09:46

标签: qt reflection refactoring

一旦我看到一个名为.NET Reflector的漂亮工具。它可以显示.Net二进制文件/应用程序的整个对象层次结构(对不起,如果该术语有误)。 Qt有这样的东西吗?由于Qt具有非常好的QMetaObject能力,因此应该可以遍历对象树,调用方法(槽),更改属性等。

我目前正在重新考虑Qt项目。变量的命名是非常特定于域的,我不是这个领域的专家。因此,我很难将窗口小部件变量映射到屏幕上的窗口小部件。这样的工具对我理解代码非常有帮助。

非常感谢你!

2 个答案:

答案 0 :(得分:2)

对于简单用途,您可能需要查看QObject::dumpObjectTree()

如果您需要更高级的内容,请 kspy

  

kspy:检查a的内部状态   Qt / KDE app KSpy是一个很小的库   这可以用于图形   显示正在使用的QObject   Qt / KDE应用程序。除了对象   树,你也可以查看   任何属性,信号和槽   QObject的。基本上它提供了很多   相同的信息   QObject :: dumpObjectTree()和   QObject :: dumpObjectInfo(),但是在   形式更方便。 KSpy有   应用程序的最小开销,   因为kspy库已加载   动态使用KLibLoader。见/ usr   / share / doc / kspy / README用法   说明。这个包是其中的一部分   KDE软件开发套件。

这取决于KDE的klibloader,所以如果你不在KDE下,你必须修改它,但它应该相当容易。来源是here

答案 1 :(得分:1)

有QSpy项目。它检查运行应用程序的所有QWidgets。我不确定它的效果如何,因为我无法在Mac OS X上使用它。也许在Windows上它可以更好地工作。 https://github.com/sashao/martlet http://qt-apps.org/content/show.php/QSpy?content=102287