Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
aperon |
13.6.2009, 15:10
Сообщение
#1
|
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 5.6.2009 Из: Kyiv Пользователь №: 803 Спасибо сказали: 0 раз(а) Репутация: 0
|
Здравствуйте, форумчане. К примеру, в тулбаре имеем несколько объектов, среди которых QSlider. В процессе реботы программы есть необходимость заменить слайдер на другой объект, скжем Phonon::SeekSlider. Подскажите или ткните носом на ответ, как мне такое сделать, чтобы не потерялась очередность объектов в тулбаре или возможно ли такое вообще.
|
|
|
|
|
Litkevich Yuriy |
13.6.2009, 15:58
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(aperon @ 13.6.2009, 19:10) Link чтобы не потерялась очередность объектов в тулбаре или возможно ли такое вообще. Link Оно?
|
|
|
|
|
aperon |
13.6.2009, 16:17
Сообщение
#3
|
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 5.6.2009 Из: Kyiv Пользователь №: 803 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(Litkevich Yuriy @ 13.6.2009, 15:58) Link Цитата(aperon @ 13.6.2009, 19:10) Link чтобы не потерялась очередность объектов в тулбаре или возможно ли такое вообще. Link Оно?Т.е, я вставляю то, что мне надо, а потом старое удаляю. Тогда получается, что в определенный момент, у меня в тулбаре будут присутствовать два слайдера, старый ненужный и новый? Так? А просто заменить никак нельзя, правильно? |
|
|
|
|
Litkevich Yuriy |
13.6.2009, 17:16
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(aperon @ 13.6.2009, 20:17) Link А просто заменить никак нельзя, правильно? можно попробовать так:Создаёшь указатель на QWidget В нужный момент инициализируешь его желаемым объектом. А при смене удаляешь старый объект и переиницализирушь указатель новым Но тогда пользоваться таким виджетом нужно с приведением типа, например: или В зависимости от того, какой виджет в данный момент используется |
|
|
|
|
aperon |
13.6.2009, 17:32
Сообщение
#5
|
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 5.6.2009 Из: Kyiv Пользователь №: 803 Спасибо сказали: 0 раз(а) Репутация: 0
|
Вы точно обобщили суть задачи и ее решение. Большое спасибо. Насчет приведения, это понятно по-умолчанию. Жаль только, что нет возможности сделать такую операцию визуально незаметной.
|
|
|
|
|
Litkevich Yuriy |
13.6.2009, 17:52
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(aperon @ 13.6.2009, 21:32) Link Жаль только, что нет возможности сделать такую операцию визуально незаметной. ну если тип виджета изменяется (и стало быть внешний вид), то этого уже не скроешь.Чтобы дерготни было поменьше, можно для панели инструментов воспользоватся методом setUpdateEnable() |
|
|
|
|
aperon |
13.6.2009, 19:49
Сообщение
#7
|
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 5.6.2009 Из: Kyiv Пользователь №: 803 Спасибо сказали: 0 раз(а) Репутация: 0
|
OK. Спасибо.
|
|
|
|
|
kwisp |
15.6.2009, 7:57
Сообщение
#8
|
|
астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23
|
Цитата(aperon @ 13.6.2009, 18:32) Link Жаль только, что нет возможности сделать такую операцию визуально незаметной. у меня точно такая же задача стояла. в resizeEvent() ToolBar`a сделал пропорциональное изменения его содержимого, и при замене действия либо виджета в нем слежу чтобы старый и новый виджет были одинакового размера -- визуально при замене ToolBar теперь не "скачет". |
|
|
|
|
aperon |
15.6.2009, 15:16
Сообщение
#9
|
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 5.6.2009 Из: Kyiv Пользователь №: 803 Спасибо сказали: 0 раз(а) Репутация: 0
|
Спасибо.
|
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 22.12.2025, 14:34 |