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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Масштабирование сцены по размеру QGraphicsView  (Прочитано 9724 раз)
Larry
Гость
« : Март 23, 2011, 13:51 »

Добрый день, форумчане! Хочу попросить помощи вот по какому вопросу...Есть QGraphicsView и сцена QGraphicsScene. На сцену добавлен через QGraphicsProxyWidget плеер из Phonon. Все это открывается в полноэкранном режиме...Как мне эту сцену масшатбировать по размерам view? Пробовал через
Код:
m_proxyPlayer->setScale(2.0);
но тогда он масштабирует не на весь экран...внизу остается полоса...как это обойти?Заранее спасибо....
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Март 23, 2011, 15:01 »

QGraphicsView::fitInView()
Записан

Qt 5.11/4.8.7 (X11/Win)
Larry
Гость
« Ответ #2 : Март 23, 2011, 15:25 »

подскажите пожалуйста, а как этим методом воспользоваться, а то я пробовал, но ничего не произошло...может что-то неправильно сделал...
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Март 23, 2011, 15:28 »

показывай как пробовал.
Записан

Qt 5.11/4.8.7 (X11/Win)
Larry
Гость
« Ответ #4 : Март 23, 2011, 15:31 »

Код:
m_viewPlayer->fitInView(m_proxyPlayer);
пробовал вот так. А какой флаг использовать?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #5 : Март 23, 2011, 15:34 »

Попробуй вот так:
Код
C++ (Qt)
m_viewPlayer->fitInView( m_viewPlayer->scene()->sceneRect(), Qt::KeepAspectRatio );
Записан

Qt 5.11/4.8.7 (X11/Win)
Larry
Гость
« Ответ #6 : Март 23, 2011, 15:54 »

программа не запустилась, написала ошибка при доступе по адресу....и открыла файл qscopedpointer
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #7 : Март 23, 2011, 16:17 »

Цитата: Larry
программа не запустилась, написала ошибка при доступе по адресу....и открыла файл qscopedpointer
Чего-то намудрил видать. В отладчике в callstack-e на чём упало-то?
Записан

Qt 5.11/4.8.7 (X11/Win)
Larry
Гость
« Ответ #8 : Март 23, 2011, 16:27 »

необработанное исключение в QtGuid4.dll. Ошибка доступа при чтении...
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #9 : Март 23, 2011, 16:30 »

Цитировать
необработанное исключение в QtGuid4.dll. Ошибка доступа при чтении...
На чём упало-то можешь сказать?
Записан

Qt 5.11/4.8.7 (X11/Win)
Larry
Гость
« Ответ #10 : Март 23, 2011, 16:47 »

сделал точку останова как раз на этой строке...вот на ней и упало
Записан
Larry
Гость
« Ответ #11 : Март 23, 2011, 16:54 »

а если вот так попробовать:

Код:
QSize size_wnd = this->size();
QSize size_view = m_viewPlayer->size();

qreal xscale = (qreal)size_wnd.width()/size_view.width();    // получаем коэффициенты
qreal yscale = (qreal)size_wnd.height()/size_view.height();  // масштабирования

m_viewPlayer->scale(xscale, yscale);

так работает, но правильно ли это будет?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #12 : Март 23, 2011, 17:08 »

Цитировать
сделал точку останова как раз на этой строке...вот на ней и упало
там негде падать. Разве что m_viewPlayer->scene() == 0 Шокированный
Записан

Qt 5.11/4.8.7 (X11/Win)
Larry
Гость
« Ответ #13 : Март 23, 2011, 17:23 »

m_viewPlayer->scene() != 0, но все же падает
А как по варианту, который я написал выше? или это неправильно?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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