PyQt的.你怎么知道QGraphicsScene中的对象类型?

Max*_*xKu 3 python pyqt object-type qgraphicsscene

我使用pyqt4.8 + python2.7

QGraphicsScene我添加不同的对象,如QGraphicsEllipseItemQGraphicsProxyWidget(与QPushButton).使用不同类型的对象必须调用不同的函数.

比如改变对象的大小

用于QGraphicsEllipseItem:

item.setRect(size)
Run Code Online (Sandbox Code Playgroud)

用于QPushButton:

item.widget().setRect(size)
Run Code Online (Sandbox Code Playgroud)

PS.setRect()for QPushButton- 是我的自定义功能

我在场景中选择对象并想要改变它们的大小.但是对于不同的对象需要调用不同的函数并且需要得到那种类型的对象才能产生所需的函数.

我有精选的物品.

selItems = self.scene.selectedItems()
for item in selItems:
    ...
Run Code Online (Sandbox Code Playgroud)

如何进一步学习触发所需功能的对象类型?

Ale*_*_32 6

你可以使用方法 type()

selItems = self.scene.selectedItems()
for item in selItems:
    obj_type = type(item)
Run Code Online (Sandbox Code Playgroud)

并使用if语句检查它:

if obj_type == QPushButton:
    # do stuff
Run Code Online (Sandbox Code Playgroud)

或者您可以通过isinstance()功能检查它.

if isinstance(item, QPushButton):
    # do stuff
Run Code Online (Sandbox Code Playgroud)

我以QPushButton为例,设置您要检查的小部件.