我使用pyqt4.8 + python2.7
QGraphicsScene
中的我添加了不同的对象,例如QGraphicsEllipseItem
和QGraphicsProxyWidget
(带QPushButton
)。使用不同类型的对象必须调用不同的函数。
例如改变对象的大小
代表QGraphicsEllipseItem
:
item.setRect(size)
代表QPushButton
:
item.widget().setRect(size)
PS。 setRect()
的{{1}} - 是我的自定义功能
我在场景中选择对象并想要改变它们的大小。但是对于不同的对象需要调用不同的函数,并且需要得到那种类型的对象才能产生所需的函数。
我选择了对象。
QPushButton
如何进一步了解触发所需功能的对象类型?
答案 0 :(得分:5)
您可以使用方法type()
selItems = self.scene.selectedItems()
for item in selItems:
obj_type = type(item)
并使用if语句检查:
if obj_type == QPushButton:
# do stuff
或者您可以使用isinstance()
功能进行检查。
if isinstance(item, QPushButton):
# do stuff
我以QPushButton为例,设置您要检查的小部件。