Название: Прорисовка QGraphicsItem без потерь Отправлено: Hrundel от Октябрь 09, 2013, 14:32 Всем привет,
Делаю задание на практике: программа (nagios) ослеживает состояние участников сети. Моя задача написать для нее монитор. В мониторе все участники сети представленны в виде дерева. Выглядит так: http://www.fotolink.su/v.php?id=cf4912c1bdef5622ec39c6892928bbc8 (http://www.fotolink.su/v.php?id=cf4912c1bdef5622ec39c6892928bbc8) Когда начинаю навигировать по дереву - то сцена бывает становится очень широкой... и тут возникает проблема - исчезают некоторые мосты. Причем они есть но показываются только тогда, когда узел попадает в зону видимости. Выглядит вот так: Это когда узел вне поля видимости http://www.fotolink.su/v.php?id=df217b0167c562449b52caa518ecf9e4 (http://www.fotolink.su/v.php?id=df217b0167c562449b52caa518ecf9e4) это когда в поле http://www.fotolink.su/v.php?id=0d4768057f3c3fa06416d09de426bafd (http://www.fotolink.su/v.php?id=0d4768057f3c3fa06416d09de426bafd) как сделать так, чтобы ветки отображались всегда, иначе это слишком вводит в заблуждение? Название: Re: Прорисовка QGraphicsItem без потерь Отправлено: GreatSnake от Октябрь 09, 2013, 14:40 Когда начинаю навигировать по дереву - то сцена бывает становится очень широкой... и тут возникает проблема - исчезают некоторые мосты. Причем они есть но показываются только тогда, когда узел попадает в зону видимости. Хм... что-то делается не так, ибо сцена при навигации не должна меняться.Название: Re: Прорисовка QGraphicsItem без потерь Отправлено: Hrundel от Октябрь 09, 2013, 14:51 прошу прощения за неясно выраженную мысль.
Под навигацией я имею ввиду перемещение вглубь дерева, а не сам скролинг. Навагация осуществляется двойным щелчком по узлу Сцена пересчитывается заново и по новой отображется. Название: Re: Прорисовка QGraphicsItem без потерь Отправлено: _OLEGator_ от Октябрь 09, 2013, 15:04 Я так понимаю, надо чтобы вся информация на сцене была показана на экране, тогда надо подстраивать вью под размеры сцены:
Код
Название: Re: Прорисовка QGraphicsItem без потерь Отправлено: GreatSnake от Октябрь 09, 2013, 15:10 Скроллинг то нужен или нет?
Название: Re: Прорисовка QGraphicsItem без потерь Отправлено: Hrundel от Октябрь 09, 2013, 15:18 Скролинг - есть. Уменьшение увеличение - есть. Отображение всей сцены целиком - есть.
Проблема только в том что в если узел наследника лежит далеко за предлеами области видимости, то соединение между родителем и потомком не отображается. но если они оба в области видимости то появляется и соединение. Мне надо чтобы оно не исчезало. Название: Re: Прорисовка QGraphicsItem без потерь Отправлено: _OLEGator_ от Октябрь 09, 2013, 15:39 Так бы и писал. Ты видимо не корректно размер элемента отдаешь, без учета этой соединительной линии. Поэтому сцена разумно даже не вызывает отрисовку, т.к. элемент полностью вне зоны видимости.
Название: Re: Прорисовка QGraphicsItem без потерь Отправлено: Hrundel от Октябрь 09, 2013, 15:52 Начинаю понимать, но смутно. Можно подробнее?
Название: Re: Прорисовка QGraphicsItem без потерь Отправлено: _OLEGator_ от Октябрь 09, 2013, 15:59 В зависимости, как организовано определение границ, ты не учитываешь соединительную линию при переопределении этих функций:
Код
Название: Re: Прорисовка QGraphicsItem без потерь Отправлено: Hrundel от Октябрь 09, 2013, 16:10 Спасибо, углублюсь в эту тему.
Название: Re: Прорисовка QGraphicsItem без потерь Отправлено: Hrundel от Октябрь 09, 2013, 16:37 Не помогает пока.
Вот так определяю: Код: GraphNodeConnectionTopDown::GraphNodeConnectionTopDown(int w): Вот так вызываю: Код: GraphNodeConnectionTopDown* nodeBridge = new GraphNodeConnectionTopDown(width); Все равно пропадают Название: Re: Прорисовка QGraphicsItem без потерь Отправлено: GreatSnake от Октябрь 09, 2013, 16:49 Содержимое сцены зависит от размеров вью?
Название: Re: Прорисовка QGraphicsItem без потерь Отправлено: Hrundel от Октябрь 09, 2013, 16:52 Нет, не зависит.
Кстати, пишу под Linux OpenSUSE Не знаю , может ли подобный эффект зависеть от OS |