Название: получить доступ к свойствам не базового класса. Отправлено: Жора от Июль 23, 2012, 15:49 ДОбрый день.
QWidget* widgetForm; widgetForm = new EditWidget(this); EditWidget-наследник QWidget; Как получить доступ к свойствам и методам EditWidget. когда пишу widgetForm-> паолучаю доступ только к свойствам и методам QWidget. Спасибо. и извините за глупый вопрос. Название: Re: получить доступ к свойствам не базового класса. Отправлено: Пантер от Июль 23, 2012, 15:54 EditWidget *widgetForm;
Название: Re: получить доступ к свойствам не базового класса. Отправлено: Жора от Июль 23, 2012, 15:57 Дело в том, что мне надо переменной widgetForm присваивать различные виджеты. и не хотелось бы для каждого виджета создавать сваю переменную.
Название: Re: получить доступ к свойствам не базового класса. Отправлено: Alex Custov от Июль 23, 2012, 15:58 Дело в том, что мне надо переменной widgetForm присваивать различные виджеты. и не хотелось бы для каждого виджета создавать сваю переменную. именно как ты хочешь - никак. Покажи код, тогда что-нибудь подскажут детальнее. Название: Re: получить доступ к свойствам не базового класса. Отправлено: Жора от Июль 23, 2012, 16:11 Да тут и кода собственно говоря особо и нету.
*.h Код: class EditWidget: public QWidget, public Ui::EditWidget *.cpp Код:
Название: Re: получить доступ к свойствам не базового класса. Отправлено: mutineer от Июль 23, 2012, 16:17 Код: if(t == 1) Тем же способом для остальных случаев Название: Re: получить доступ к свойствам не базового класса. Отправлено: Жора от Июль 23, 2012, 16:23 Спасибо большое.
Название: Re: получить доступ к свойствам не базового класса. Отправлено: mutineer от Июль 23, 2012, 16:24 И прочитай про switch и другие особенности языка С++
Название: Re: получить доступ к свойствам не базового класса. Отправлено: Жора от Июль 23, 2012, 16:33 А как можно произвести обратную операцию? То есть считать значения с формы?
Название: Re: получить доступ к свойствам не базового класса. Отправлено: mutineer от Июль 23, 2012, 16:34 Из каких виджетов?
Название: Re: получить доступ к свойствам не базового класса. Отправлено: Жора от Июль 23, 2012, 16:38 Сам уже придумал.
EditWidget* tempWidget; tempWidget = (EditWidget*)widgetForm; Так же можно делать? Спасибо, за помощь. Название: Re: получить доступ к свойствам не базового класса. Отправлено: mutineer от Июль 23, 2012, 16:42 Не надо использовать C-style cast. Что будет, если widgetForm указывает не на EditWidget, а на другой тип?
Название: Re: получить доступ к свойствам не базового к Отправлено: Пантер от Июль 23, 2012, 16:42 qobject_cast <EditWidget*> (widgetForm)
Учи с++. Такой подход неверен. Название: Re: получить доступ к свойствам не базового класса. Отправлено: Жора от Июль 23, 2012, 16:45 Какой подход не верен? Мой, Ваш, оба?
Название: Re: получить доступ к свойствам не базового класса. Отправлено: Igors от Июль 23, 2012, 16:47 Сам уже придумал. Можно, но это (дружно) осуждается. В С++ принято делать с контролемEditWidget* tempWidget; tempWidget = (EditWidget*)widgetForm; Так же можно делать? Код А в Qt своя мода Код Вообще, Жора, если опыта в языке маловато, лучше не лезть в многочисленные Qt классы. Название: Re: получить доступ к свойствам не базового класса. Отправлено: Пантер от Июль 23, 2012, 16:47 Подход, при котором приходится что-то во что-то кастить.
Название: Re: получить доступ к свойствам не базового класса. Отправлено: Жора от Июль 23, 2012, 16:53 Спасибо. Будем набираться опыта.
|