Russian Qt Forum
Мая 19, 2025, 21:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как узнать в QGraphicsScene,что View ресайзнулся?  (Прочитано 2508 раз)
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.037 секунд. Запросов: 22.