Название: Доступ к методам parentWidget Отправлено: qt_beginner от Октября 23, 2011, 20:14 Такая проблема возникла.
Создаю в родительском виджете новый виджет. child_widget* c_w = new child_widget(this); Не могу получить доступ к методу родительского виджета из child_widget: this->parentWidget()->test_method(); Компилятор выдаёт ошибку, что такого метода не существует: @ ошибка: ‘class QWidget’ has no member named ‘test_method’ Название: Re: Доступ к методам parentWidget Отправлено: Igors от Октября 23, 2011, 20:30 Правильно говорит т.к. parent возвращает указатель на QWidget, надо "приводиться"
Код Хотя это будет работать, это все равно "плохое программирование", каждое такое приведение - минус для репутации программиста Название: Re: Доступ к методам parentWidget Отправлено: qt_beginner от Октября 23, 2011, 20:32 >>Хотя это будет работать, это все равно "плохое программирование", каждое такое приведение - минус для репутации программиста
А как по-правильному делать? Название: Re: Доступ к методам parentWidget Отправлено: Igors от Октября 23, 2011, 20:41 А как по-правильному делать? Этого я не знаю, в каждом конкретном случае - свое решение :)Название: Re: Доступ к методам parentWidget Отправлено: Странник от Октября 23, 2011, 21:04 А как по-правильному делать? по-хорошему родительский объект может использовать методы дочерних, но не наоборот. опишите задачу, зачем дочернему виджету вызывать метод родительского?Название: Re: Доступ к методам parentWidget Отправлено: TaIRou от Октября 23, 2011, 21:05 передай указатель сразу в конструкторе
child_widget::child_widget ( parent_widget * parent = 0 ) : QWidget(parent), pointer_parent_widget(parent) { ... } запомни и используй... ммм? хотя нормально и с приведением. Название: Re: Доступ к методам parentWidget Отправлено: GreatSnake от Октября 23, 2011, 21:37 Хотя это будет работать, это все равно "плохое программирование", каждое такое приведение - минус для репутации программиста Имхо, минус не в приведении, а в том, что потомок дёргает создателя.2 qt_beginner Зачем постишь в тему, к которой вопрос не имеет отношения? Название: Re: Доступ к методам parentWidget Отправлено: Igors от Октября 24, 2011, 09:57 Имхо, минус не в приведении, а в том, что потомок дёргает создателя. Да, так будет точнее. Вообще это один из самых популярных вопросов (часто с нехорошим словом "форма") который по существу сводится к "а как же правильно программировать?" :) |