Название: Граф объектов Отправлено: Allender от Августа 22, 2005, 15:38 Нужно растолкать по виджету граф объектов.
Объекты ссылаютсы на соседние: left, right, top и bottom. То есть layout аля Motif. Понятно, что нужно строить граф, и всё хорошо, если найдены все объекты, которые ссылаются на виджет-контейнер и между ними нет дырок. Тут проблем вроде нет. Но: 1. в графе могут быть дырки. 2. крайний объект может не ссылаться на родительский контейнер, а хранить только позицию. Алгоритмическая часть апп и так тормозная, не хотелось бы чтобы GUI прибавляло тормозов:) Чуть не забыл, GRID не подходит по внешнему виду. Кто-нибудь знает о подобных алгоритмах? Буду весьма благодарен за любые ссылки:) Название: Граф объектов Отправлено: Racheengel от Августа 23, 2005, 12:31 честно говоря, не понятен смысл проблемы. Можно поконкретней?
Название: Граф объектов Отправлено: Allender от Августа 23, 2005, 12:42 Смотри, пусть у нас есть Фрайм и тройка виджетов в списке.
Берём первый виджет. Смотрим: он прикрепляется к нижней грани фрейма и говорит, что слева у него другой виджет?2. Берём этот второй виджет. Смотрим: у него права наш первый виджет, который мы уже взяли, а сверху третий виджет. Берём третий виджет. Смотрим: А у него снизу наш второй и ещё говорится о том, что во фреймовых кооординатах он на позиции (100.10) Qt layout (кроме Grid) подразумевает, что мы кладём всё слева направо и сверху вниз. Здесь же совершенно противоположенная ситуация... И как её разрулить, пока не решил... Grid не подходит, так как колонок быть не должно, а заморачиваться на multicell - ещё задачу усложнит... Название: Граф объектов Отправлено: Racheengel от Августа 23, 2005, 12:58 ну тогда ИМХО тебе надо свой layout manager создавать...
Название: Граф объектов Отправлено: Allender от Августа 23, 2005, 13:01 Дык ведь все дело то в алгоритме...
Если универсальный, так зациклиться может, а троссировку вести... тормоза будут и памяти выжрет... Вот еслиб кто видел красивое решение :) Скажу бальшое пасиба:) Название: Граф объектов Отправлено: Racheengel от Августа 23, 2005, 13:42 а как такое можно без трассировки сделать? тебе все равно придется координаты сканить...
Название: Граф объектов Отправлено: Allender от Августа 23, 2005, 14:35 Зачем? Только в одно из нескольких случаев.
Если честно, я бы хотел обойтись только QBoxLayout. В конце концов, задачу можно упростить... Начать по-легче... Выкинуть из рассмотрения задание в координатах. Здесь уже нужно строить граф и знать его ширину и высоту.... Так как координат нет, то хотябы один из виджетов должен ссылаться на контейнер. От него и надо плясать и вычислять размерность графа. Но вот при вычислении этой размерности я и боюсь зацикливания... Здась и нужно будет вести трассировку, так как граф сождержит в себе циклы. Если вычислить размерность, то мона смело забивать в Layout spacе-ы в нужных местах и всё получится... Хотя, на эти цмклы можно забить, если искать в ширину... Вообщем... четкого решения пока нет... |