我有一个带相关图标的QPushButton,我将它添加到场景中:
QPushButton *button = new QPushButton;
button->setIcon(QIcon(myIcon));
buttonWidget = detail->scene()->addWidget(button);
// buttonWidget is declared globally and is a QGraphicsProxyWidget*
稍后,在其他功能中,仍然可以访问buttonWidget
。如何从QPushButton
检索buttonWidget
对象?我想改变它的图标。
答案 0 :(得分:2)
也许您可以使用QGraphicsProxyWidget::widget
获取基础QWidget*
,然后使用dynamic_cast
转换为QPushButton*
:
QPushbutton *otherButton = dynamic_cast<QPushButton*>(buttonWidget->widget());
答案 1 :(得分:2)
您可以使用QGraphicsProxyWidget::widget
将对象检索为QWidget,然后转换为QPushButton
。
但是我建议让QPushButton
成为你班级的一个属性(总是比投射更好)。然后,您可以在以后随时访问它。
button = new QPushButton; // declare button as an attribute of your class in the header file
button->setIcon(QIcon(myIcon));
buttonWidget=detail->scene()->addWidget(button);