我正在考虑将pythonqt添加到我的用于编写插件的应用程序中。我的应用程序是C++,已经使用了Qt框架。 pythonqt选项似乎很自然地适合添加GUI组件,但是我担心如果暴露具有数百万个实例的类,程序的伸缩性如何。在内存中有大约一百万种某种类型的对象并不少见,我想确保pythonqt能够公开这些对象而无需使其成为QObjects。我猜可能很好,但是在开始之前,我想知道使用pythonqt公开这么多的类是否可行,以及是否有人有足够的经验来扩展它。

从此链接(http://pythonqt.sourceforge.net/Developer.html),似乎装饰器实际上仅应请求将它们加载到python / Qt中。我只是不想让Qt更大的内存占用而无缘无故地跟踪这些数百万个对象。

最佳答案

我没有做太多事情,但是听起来您至少应该看看QtQuick / QML层。从您的描述中很难知道发生了什么,但是QML是一种无需进行任何C++编码即可编写Qt GUI的方法。它建立在已经存在且运行良好的Qt / JavaScript实现和Bridge的基础上。

至于将类的实例暴露给脚本语言,通常取决于桥的实现。虽然通常涉及一些代码,但是您可能不会在每个实例上都需要这样做,或者可能会延迟实例化到一个程度,即您所拥有的包装实例要比保存在内存中的原始实例少得多。

09-09 23:19