Russian Qt Forum
Сентябрь 23, 2024, 20:16 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как узнать в QGraphicsScene,что View ресайзнулся?  (Прочитано 2380 раз)
Caduceus
Гость
« : Июль 26, 2011, 12:55 »

Необходимо перестраивать айтемы при ресайзе QGraphicsView. Как в соответствующей сцене узнать об этом событии, не переопределяя QGraphicsView (ради одной функции не хочется классы плодить)?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Июль 26, 2011, 13:01 »

Никак. Да и идеологически это не нужно.
Зачем модели знать, что как-то изменилось представление, которых, кстати, может быть несколько.
Зачем вообще менять содержимое сцены, если меняется представление?
Записан

Qt 5.11/4.8.7 (X11/Win)
Caduceus
Гость
« Ответ #2 : Июль 26, 2011, 13:04 »

Хорошо, может я что-то не так делаю
Тогда спрошу по-другому.

У меня айтемы - это графики, они располагаются вертикально друг под другом. При горизонтальном ресайзе окна эти графики необходимо перестроить (или более детализированно при расширении, или упростить при сужении).
Вот как сделать так, чтобы айтемы автоматически расширялись под всю ширину вида и каждый айтем знал об этом и перестраивал картинку своего графика?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Июль 26, 2011, 13:18 »

Имхо, в таком случае лучше всё самому рисовать без QGraphics.
Но, коли уже так сделано, то по-любому придётся перегружать QGraphicsView::resizeEvent() и уже из него испускать сигнал resized().
Меня, кстати, тоже это напрягает - тролли могли бы добавить это.
Записан

Qt 5.11/4.8.7 (X11/Win)
Makss
Гость
« Ответ #4 : Июль 27, 2011, 11:27 »

eventFilter попробуйте
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.125 секунд. Запросов: 23.