Название: Доступ к элементам страницы стэка виджета Отправлено: QKrot от Апрель 23, 2010, 20:38 Простой код выдаёт простую ошибку
Код error: invalid conversion from 'QWidget*' to 'mrScaleWidget*' При такой конструкции программа при компиляции сразу вылетает Код
Так вообще правомерно обращаться к атрибутам виджета стэка ? menuLabel -public атрибут. Всё вроде нормально. Название: Re: Доступ к элементам страницы стэка виджета Отправлено: alexman от Апрель 23, 2010, 20:42 Вы уверены, что по индексу 0 лежит mrScaleWidget*?
Название: Re: Доступ к элементам страницы стэка виджета Отправлено: QKrot от Апрель 23, 2010, 20:56 Виджет класса mrScaleWidget я поместил на самую первую страницу стэка. Он унаследован от QWidget. Поэтому я ожидаю, что mw.stackedWidget->widget(0) вернет QWidget-указатель, указывающий на mrScaleWidget как производный класс.
Название: Re: Доступ к элементам страницы стэка виджета Отправлено: alexman от Апрель 23, 2010, 20:59 Эту функцию использовали int QStackedWidget::addWidget ( QWidget * widget )? Что вернула функция?
Название: Re: Доступ к элементам страницы стэка виджета Отправлено: Авварон от Апрель 23, 2010, 21:02 а) не юзайте сишый каст
б) для наследников куобжект юзайте qobject_cast в) напечатайте имя класса/его тип через метаинформацию (если дебаггер не юзаете) Название: Re: Доступ к элементам страницы стэка виджета Отправлено: sendevent от Апрель 23, 2010, 21:05 mrScaleWidget* sw = (mrScaleWidget *)mw.stackedWidget->widget(0); static|qobject_cast прожевывает?хедер с mrScaleWidget подключен явно? Название: Re: Доступ к элементам страницы стэка виджета Отправлено: alexman от Апрель 23, 2010, 21:21 а) не юзайте сишый каст А в чем проблема?Название: Re: Доступ к элементам страницы стэка виджета Отправлено: QKrot от Апрель 23, 2010, 21:40 Очевидно я новичок :) .
Такой код работает правильно Код widget - имя, которое назначил Designer экземпляру mrScaleWidget. Однако я не понял, почему на странице стэка разместился объект page типа QWidget, а ниже по иерархии widget класса mrScaleWidget. По идеи page должен быть типа mrScaleWidget. Видимо это результат преобразования QWidget к пользовательскому классу mrScaleWidget. Название: Re: Доступ к элементам страницы стэка виджета Отправлено: sendevent от Апрель 23, 2010, 21:45 сишное приведение сначала все равно попытается использовать static_cast, если не получится - молча сделает reinterpret_cast, да и дело с концом. хотя если не статик_скастилось - стоит задуматься, что хочешь получить и что для этого делаешь. Название: Re: Доступ к элементам страницы стэка виджета Отправлено: Авварон от Апрель 23, 2010, 23:58 уишку выложи
по-моему у тебя там лайаут лишний |