![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
aperon |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 5.6.2009 Из: Kyiv Пользователь №: 803 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Здравствуйте, форумчане. К примеру, в тулбаре имеем несколько объектов, среди которых QSlider. В процессе реботы программы есть необходимость заменить слайдер на другой объект, скжем Phonon::SeekSlider. Подскажите или ткните носом на ответ, как мне такое сделать, чтобы не потерялась очередность объектов в тулбаре или возможно ли такое вообще.
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
чтобы не потерялась очередность объектов в тулбаре или возможно ли такое вообще. QAction * insertWidget ( QAction * before, QWidget * widget ) Оно?
|
|
|
aperon |
![]()
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 5.6.2009 Из: Kyiv Пользователь №: 803 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
чтобы не потерялась очередность объектов в тулбаре или возможно ли такое вообще. QAction * insertWidget ( QAction * before, QWidget * widget ) Оно?Т.е, я вставляю то, что мне надо, а потом старое удаляю. Тогда получается, что в определенный момент, у меня в тулбаре будут присутствовать два слайдера, старый ненужный и новый? Так? А просто заменить никак нельзя, правильно? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
А просто заменить никак нельзя, правильно? можно попробовать так:Создаёшь указатель на QWidget
В нужный момент инициализируешь его желаемым объектом.
А при смене удаляешь старый объект и переиницализирушь указатель новым
Но тогда пользоваться таким виджетом нужно с приведением типа, например:
или
В зависимости от того, какой виджет в данный момент используется |
|
|
aperon |
![]()
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 5.6.2009 Из: Kyiv Пользователь №: 803 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Вы точно обобщили суть задачи и ее решение. Большое спасибо. Насчет приведения, это понятно по-умолчанию. Жаль только, что нет возможности сделать такую операцию визуально незаметной.
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
aperon |
![]()
Сообщение
#7
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 5.6.2009 Из: Kyiv Пользователь №: 803 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
OK. Спасибо.
|
|
|
kwisp |
![]()
Сообщение
#8
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Жаль только, что нет возможности сделать такую операцию визуально незаметной. у меня точно такая же задача стояла. в resizeEvent() ToolBar`a сделал пропорциональное изменения его содержимого, и при замене действия либо виджета в нем слежу чтобы старый и новый виджет были одинакового размера -- визуально при замене ToolBar теперь не "скачет". |
|
|
aperon |
![]()
Сообщение
#9
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 5.6.2009 Из: Kyiv Пользователь №: 803 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Спасибо.
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 31.5.2025, 19:26 |