Russian Qt Forum
Июнь 16, 2024, 03:02
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Граф объектов
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Граф объектов (Прочитано 5546 раз)
Allender
Гость
Граф объектов
«
:
Август 22, 2005, 15:38 »
Нужно растолкать по виджету граф объектов.
Объекты ссылаютсы на соседние: left, right, top и bottom. То есть layout аля Motif.
Понятно, что нужно строить граф, и всё хорошо, если найдены все объекты, которые ссылаются на виджет-контейнер и между ними нет дырок. Тут проблем вроде нет. Но:
1. в графе могут быть дырки.
2. крайний объект может не ссылаться на родительский контейнер, а хранить только позицию.
Алгоритмическая часть апп и так тормозная, не хотелось бы чтобы GUI прибавляло тормозов:)
Чуть не забыл, GRID не подходит по внешнему виду.
Кто-нибудь знает о подобных алгоритмах?
Буду весьма благодарен за любые ссылки:)
Записан
Racheengel
Джедай : наставник для всех
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
Сообщений: 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
Сообщений: 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
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...