Rt *_*Rtt 2 python pyqt pyqt4 pyqt5
这应该是一个愚蠢的问题。我只是很好奇,无法独自找到答案。
例如,我在PyQt5中定义了一些小部件:
self.lbl = QLabel("label")
self.btn = QPushButton("click")
self.txt = QLineEdit("text")
Run Code Online (Sandbox Code Playgroud)
是否有任何检测什么样的插件的方法self.lbl,self.btn或者self.txt是谁?
我可以想象:通过检测小部件类型,输入为self.lbl,输出应为QLabel...或类似的东西。
我只找到isWidgetType()方法。但这不是我想要的。
谢谢您的帮助!
有几种获取小部件名称的方法:
__class__:print(self.lbl.__class__.__name__)
Run Code Online (Sandbox Code Playgroud)
print(self.lbl.metaObject().className())
Run Code Online (Sandbox Code Playgroud)
这些先前的方法返回一个带有类名称的字符串,但是如果要验证对象是否属于类,可以使用isinstance():
is_label = isinstance(self.lbl, QLabel)
Run Code Online (Sandbox Code Playgroud)
另一个选择是使用,type()但如果要获取更多信息isinstance()并type()阅读以下内容,则不建议使用:type()和isinstance()之间有什么区别?