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