PySide/PyQt 中存在哪些类型转换?

What type conversions exist in PySide/PyQt?

Slot, Signal, Property等取一个类型。例如示例代码显示:

class MyObject(QObject):                                                                            

    def __init__(self,startval=42):                                                                 
        QObject.__init__(self)                                                                      
        self.ppval = startval                                                                       
                                                                                                   
    def readPP(self):                                                                                   
        return self.ppval                                                                               
                                                                                                    
    def setPP(self,val):                                                                                
        self.ppval = val                                                                                
                                                           
    pp = Property(int, readPP, setPP)  # <--- Look at the first argument

Property 期望 'int'。

有哪些类型?我找不到文档。

在我使用 Qt 的过程中,我通过渗透收集了以下内容:

只有这些类型可用吗?他们真的在某处记录了吗?

一般来说它支持任何数据类型。

问题是,如果 QML 支持它,那么只有一些基本类型 PySide/PyQt 可以解释并将它们转换为 QML 对象。不幸的是,没有关于它的文档(也许将其报告为错误对他们实施它有好处)。

除了您指定的那些,您还可以使用:

  • “QVariantList”

  • QObject:公开模型或从 QObject 派生的 类 时也必须导出此类型。

  • QColor

  • QUrl

  • QDateTime

  • QFont

  • Q点,Q点F

  • QRect, QRectF

  • QSize, QSizeF

理论上 PySide/PyQt 最多可以支持 Qt/C++ 支持的类型,在这种情况下,如果有相关文档:Basic Qt Data Types.

不在该列表中的任何其他类型的 python 数据将被封装在 QVariant 中,因为它确实支持 PyObject 但它将无法使用,因为它不能在 QML 中进行操作。