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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Граф объектов  (Прочитано 5545 раз)
Allender
Гость
« : Август 22, 2005, 15:38 »

Нужно растолкать по виджету граф объектов.
Объекты ссылаютсы на соседние: left, right, top и bottom. То есть layout аля Motif.
Понятно, что нужно строить граф, и всё хорошо, если найдены все объекты, которые ссылаются на виджет-контейнер и между ними нет дырок. Тут проблем вроде нет. Но:
1. в графе могут быть дырки.
2. крайний объект может не ссылаться на родительский контейнер, а хранить только позицию.

Алгоритмическая часть апп и так тормозная, не хотелось бы чтобы GUI прибавляло тормозов:)

Чуть не забыл, GRID не подходит по внешнему виду.

Кто-нибудь знает о подобных алгоритмах?
Буду весьма благодарен за любые ссылки:)
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Август 23, 2005, 12:31 »

честно говоря, не понятен смысл проблемы. Можно поконкретней?
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Allender
Гость
« Ответ #2 : Август 23, 2005, 12:42 »

Смотри, пусть у нас есть Фрайм и тройка виджетов в списке.

Берём первый виджет. Смотрим: он прикрепляется к нижней грани фрейма и говорит, что слева у него другой виджет?2.
Берём этот второй виджет. Смотрим: у него права наш первый виджет, который мы уже взяли, а сверху третий виджет.
Берём третий виджет. Смотрим: А у него снизу наш второй и ещё говорится о том, что во фреймовых кооординатах он на позиции (100.10)

Qt layout (кроме Grid) подразумевает, что мы кладём всё слева направо и сверху вниз. Здесь же совершенно противоположенная ситуация... И как её разрулить, пока не решил...
Grid не подходит, так как колонок быть не должно, а заморачиваться на multicell - ещё задачу усложнит...
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #3 : Август 23, 2005, 12:58 »

ну тогда ИМХО тебе надо свой layout manager создавать...
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Allender
Гость
« Ответ #4 : Август 23, 2005, 13:01 »

Дык ведь все дело то в алгоритме...
Если универсальный, так зациклиться может, а троссировку вести... тормоза будут и памяти выжрет...

Вот еслиб кто видел красивое решение Улыбающийся Скажу бальшое пасиба:)
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #5 : Август 23, 2005, 13:42 »

а как такое можно без трассировки сделать? тебе все равно придется координаты сканить...
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Allender
Гость
« Ответ #6 : Август 23, 2005, 14:35 »

Зачем? Только в одно из нескольких случаев.
Если честно, я бы хотел обойтись только QBoxLayout.

В конце концов, задачу можно упростить... Начать по-легче...
Выкинуть из рассмотрения задание в координатах.
Здесь уже нужно строить граф и знать его ширину и высоту....
Так как координат нет, то хотябы один из виджетов должен ссылаться на контейнер. От него и надо плясать и вычислять размерность графа. Но вот при вычислении этой размерности я и боюсь зацикливания... Здась и нужно будет вести трассировку, так как граф сождержит в себе циклы.

Если вычислить размерность, то мона смело забивать в Layout spacе-ы в нужных местах и всё получится...

Хотя, на эти цмклы можно забить, если искать в ширину...
Вообщем... четкого решения пока нет...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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