2015-11-19 23 views
0

我有一個QPushButton與相關圖標,我把它添加到一個場景:檢索QPushButton從QWidget中

QPushButton *button = new QPushButton; 
button->setIcon(QIcon(myIcon)); 
buttonWidget = detail->scene()->addWidget(button); 
// buttonWidget is declared globally and is a QGraphicsProxyWidget* 

後來,在不同的功能,buttonWidget仍可訪問。如何從buttonWidget中檢索QPushButton對象?我想改變它的圖標。

回答

2

也許你可以使用QGraphicsProxyWidget::widget得到根本QWidget*然後用dynamic_cast投給QPushButton*

QPushbutton *otherButton = dynamic_cast<QPushButton*>(buttonWidget->widget()); 
+0

工程就像一個魅力,謝謝! –

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);