如何获取 Qt 小部件类型

alp*_*ric 4 python qt types

a = QtGui.QLineEdit()   
Run Code Online (Sandbox Code Playgroud)

有没有办法查询变量a是什么 Qt 小部件?似乎一些 Qt 小部件将提供.uiType属性。但有些(如布局)不是。

小智 5

您可以使用type内置的获取 Python 中任何对象的类型:

print type(a)
Run Code Online (Sandbox Code Playgroud)

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

type(a).__name__ # Returns class name as a string
a.__class__      # Same as type(a)
Run Code Online (Sandbox Code Playgroud)

但是请注意,如果你需要执行一个类型检测,你应该使用isinstance

isinstance(a, type_to_test_for)
Run Code Online (Sandbox Code Playgroud)

这将考虑继承。