pyqt。你怎么知道 QGraphicsScene 中对象的类型?
pyqt. How do you know the type of object in QGraphicsScene?
我用的是pyqt4.8 + python2.7
在 QGraphicsScene
中,我添加了不同的对象,例如 QGraphicsEllipseItem
和 QGraphicsProxyWidget
(使用 QPushButton
)。要处理不同类型的对象必须调用不同的函数。
比如改变对象的大小
对于 QGraphicsEllipseItem
:
item.setRect(size)
对于 QPushButton
:
item.widget().setRect(size)
ps。 setRect()
for QPushButton
- 是我的自定义函数
我 select 场景中的物体,想改变它们的大小。但是对于不同的对象需要调用不同的函数,需要得到像那种类型的对象才能引起想要的函数。
我得到了 selected 对象。
selItems = self.scene.selectedItems()
for item in selItems:
...
如何进一步了解触发所需功能的对象类型?
你可以使用方法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为例,设置你要查询的widget
我用的是pyqt4.8 + python2.7
在 QGraphicsScene
中,我添加了不同的对象,例如 QGraphicsEllipseItem
和 QGraphicsProxyWidget
(使用 QPushButton
)。要处理不同类型的对象必须调用不同的函数。
比如改变对象的大小
对于 QGraphicsEllipseItem
:
item.setRect(size)
对于 QPushButton
:
item.widget().setRect(size)
ps。 setRect()
for QPushButton
- 是我的自定义函数
我 select 场景中的物体,想改变它们的大小。但是对于不同的对象需要调用不同的函数,需要得到像那种类型的对象才能引起想要的函数。
我得到了 selected 对象。
selItems = self.scene.selectedItems()
for item in selItems:
...
如何进一步了解触发所需功能的对象类型?
你可以使用方法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为例,设置你要查询的widget