Qt C++ доступ к родителю виджета

программирование C++ qt

Например, есть виджет

class Wid: public QWidget
{
public:
Button* button;
Wid(QWidget* parent = 0);
int value;
}

Wid::Wid()
{
button = new Button(this);
}


class Button: public QPushButton
{
public:
Button(QWidget* parent = 0);
}

Button2::Button2(QWidget* parent) : QPushButton(parent)
{
this->parentWidget->value // Не видит свойство родителя
}

Как сделать, чтобы дочерний виджет мог видеть свойство родителя?



Примечание:
Опечатался, вместо Button2::Button2 должно быть, конечно, Button::Button

Примечание:
WidowMaker, опишите, пожалуйста, второй пример - у меня не заработало

Примечание:
FrozenMurk, спасибо за пример. А через что получать доступ предпочтительнее Q_PROPERTY или qobject_cast?
Ответы:
тут мало программистов, раотающих с C# и С++
в QWidget нет value:
- dynamic_cast
- Button::Button(Wid* parent); parent->value
qobject_cast или через  Q_PROPERTY почитай про то и про другое
н-р:
Wid *wd = qobject_cast<Wid *>(parent);
wd->value;//видит
ps код не проверял
upd.
зависит от ситуации. по мне - лучше через q_property. хотя бывает без qobject_cast`a или dynamic_cast`a не обойтись.


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.