如何获取Qt窗口部件类型

5
a = QtGui.QLineEdit()   

有没有一种方法可以查询变量 a 是哪个 Qt 小部件?看起来有些 Qt 小部件会提供 .uiType 属性。但是有些(比如布局)不会。

2个回答

6
你可以使用Python中的type内建函数获取任何对象的类型:
print type(a)

您可能也对__name____class__属性感兴趣,它们将保存与小部件名称和类相对应的数据:

type(a).__name__ # Returns class name as a string
a.__class__      # Same as type(a)

请注意,如果您需要执行类型检查,应使用isinstance:但请注意,它不应该用作在运行时检测类型的替代方法。
isinstance(a, type_to_test_for)

这将考虑继承。

您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - ekhumoro
是的,我已经阅读了它们。我只是在编辑时忘记删除“string”这个词。此外,我提到了__name__,以防他想要类对象的名称。但我同意这有点令人困惑,因为他的代码中有一个实例。我已经按照你说的方式进行了修复。感谢指出错误。 :) - user2555451

2

你尝试过a.metaObject().className()吗?

更多信息请参见QObject文档。


1
虽然staticMetaObject可以工作,但它是用于类的。对于实例, 有metaObject()方法。 - ekhumoro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接