crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

aperon
  опции профиля:
сообщение 13.6.2009, 15:10
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 5.6.2009
Из: Kyiv
Пользователь №: 803

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте, форумчане. К примеру, в тулбаре имеем несколько объектов, среди которых QSlider. В процессе реботы программы есть необходимость заменить слайдер на другой объект, скжем Phonon::SeekSlider. Подскажите или ткните носом на ответ, как мне такое сделать, чтобы не потерялась очередность объектов в тулбаре или возможно ли такое вообще.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 13.6.2009, 17:16
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(aperon @ 13.6.2009, 20:17) *
А просто заменить никак нельзя, правильно?
можно попробовать так:
Создаёшь указатель на QWidget
QWidget *wgt = 0;

В нужный момент инициализируешь его желаемым объектом.
wgt = new MyWidget(...);

А при смене удаляешь старый объект и переиницализирушь указатель новым
if (!wgt)
    delete wgt;
wgt = new MyNewWidget(...);


Но тогда пользоваться таким виджетом нужно с приведением типа, например:
MyNewWidget *w = qobject_cast<MyNewWidget *>(wgt);
w->someNewMetod();// Это метод класса MyNewWidget

или
MyWidget *w = qobject_cast<MyWidget *>(wgt);
w->someMetod();// Это метод класса MyWidget

В зависимости от того, какой виджет в данный момент используется
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 23.6.2025, 14:57