Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Larry от Март 23, 2011, 13:51



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


Название: Re: Масштабирование сцены по размеру QGraphicsView
Отправлено: GreatSnake от Март 23, 2011, 15:01
QGraphicsView::fitInView()


Название: Re: Масштабирование сцены по размеру QGraphicsView
Отправлено: Larry от Март 23, 2011, 15:25
подскажите пожалуйста, а как этим методом воспользоваться, а то я пробовал, но ничего не произошло...может что-то неправильно сделал...


Название: Re: Масштабирование сцены по размеру QGraphicsView
Отправлено: GreatSnake от Март 23, 2011, 15:28
показывай как пробовал.


Название: Re: Масштабирование сцены по размеру QGraphicsView
Отправлено: Larry от Март 23, 2011, 15:31
Код:
m_viewPlayer->fitInView(m_proxyPlayer);
пробовал вот так. А какой флаг использовать?


Название: Re: Масштабирование сцены по размеру QGraphicsView
Отправлено: GreatSnake от Март 23, 2011, 15:34
Попробуй вот так:
Код
C++ (Qt)
m_viewPlayer->fitInView( m_viewPlayer->scene()->sceneRect(), Qt::KeepAspectRatio );


Название: Re: Масштабирование сцены по размеру QGraphicsView
Отправлено: Larry от Март 23, 2011, 15:54
программа не запустилась, написала ошибка при доступе по адресу....и открыла файл qscopedpointer


Название: Re: Масштабирование сцены по размеру QGraphicsView
Отправлено: GreatSnake от Март 23, 2011, 16:17
Цитата: Larry
программа не запустилась, написала ошибка при доступе по адресу....и открыла файл qscopedpointer
Чего-то намудрил видать. В отладчике в callstack-e на чём упало-то?


Название: Re: Масштабирование сцены по размеру QGraphicsView
Отправлено: Larry от Март 23, 2011, 16:27
необработанное исключение в QtGuid4.dll. Ошибка доступа при чтении...


Название: Re: Масштабирование сцены по размеру QGraphicsView
Отправлено: GreatSnake от Март 23, 2011, 16:30
Цитировать
необработанное исключение в QtGuid4.dll. Ошибка доступа при чтении...
На чём упало-то можешь сказать?


Название: Re: Масштабирование сцены по размеру QGraphicsView
Отправлено: Larry от Март 23, 2011, 16:47
сделал точку останова как раз на этой строке...вот на ней и упало


Название: Re: Масштабирование сцены по размеру QGraphicsView
Отправлено: Larry от Март 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);

так работает, но правильно ли это будет?


Название: Re: Масштабирование сцены по размеру QGraphicsView
Отправлено: GreatSnake от Март 23, 2011, 17:08
Цитировать
сделал точку останова как раз на этой строке...вот на ней и упало
там негде падать. Разве что m_viewPlayer->scene() == 0 :o


Название: Re: Масштабирование сцены по размеру QGraphicsView
Отправлено: Larry от Март 23, 2011, 17:23
m_viewPlayer->scene() != 0, но все же падает
А как по варианту, который я написал выше? или это неправильно?