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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Горизонтальное дерево(таблица дерево) help  (Прочитано 6162 раз)
SibViking
Гость
« : Май 26, 2010, 18:03 »

Реализуем тут один научный проект... Вообщем собственно проблема, нужен компонент для реализации представления матриц. Хотелось бы получить универсальную таблицу- представление, отображающую множество двумерных матриц N x M. Так то можно настроить стандартное табличное представление через модель таким образом, чтобы она последовательно друг за другом в колонки выводила все матрицы (чтобы  их отличать друг от друга можно раскрасить разным цветом). Однако матрицы могут быть сильно громоздкими и для их функциональности хотелось бы их сворачивать по аналогии с деревом. Только здесь дерево нужно горизонтальное а не вертикальное как в стандартном компоненте QTreeView. Я уже частично написал представление, наследованное от QTableView, повесил туда замороженную строку внизу, в которую делегатом воткнул "плюсики". (см. вложение). И теперь собственно хочется понять как реаизован механизм дереева  Непонимающий в компоненте QTreeView (код), чтобы сделать разворачивающуюся матрицу или может кто подскажет более элегантное решение. Буду признателен.
Записан
spectre71
Гость
« Ответ #1 : Май 29, 2010, 11:59 »

Реализуем тут один научный проект... Вообщем собственно проблема, нужен компонент для реализации представления матриц. Хотелось бы получить универсальную таблицу- представление, отображающую множество двумерных матриц N x M. Так то можно настроить стандартное табличное представление через модель таким образом, чтобы она последовательно друг за другом в колонки выводила все матрицы (чтобы  их отличать друг от друга можно раскрасить разным цветом).

Зачем все в одной куче Непонимающий Не надо издеваться над пользователями Улыбающийся
Сделай отдельно навигацию по матрицам(видимо твое дерево) и таблицу в которой показывается выбранная матрица.

Записан
SibViking
Гость
« Ответ #2 : Май 30, 2010, 02:43 »


Зачем все в одной куче Непонимающий Не надо издеваться над пользователями Улыбающийся
Сделай отдельно навигацию по матрицам(видимо твое дерево) и таблицу в которой показывается выбранная матрица.


Да просто тут смысл  в том чтобы таблица содержала определенный набор данных, которые являются входами выходами определенных алгоритмов, реализующихся в одном объекте (методе), а данные объекты связываются за счтет входов и выходов друг с другом в глобальной схеме расчета; матрица - это по сути элементарный вход и выход одного объекта, таблица есть отражение всех входов или выходов одного объекта....  - вообщем долго объяснять Улыбающийся поэтому представление матрицы в одной таблице не удобно для данной концепции
Записан
SibViking
Гость
« Ответ #3 : Июнь 04, 2010, 10:42 »

Как вижу, ни у кого светлых идей не родилось - печальноГрустный...    Как говориться "Если долго мучиться, что нибудь получится", Вообщем сделал я необходимый виджет, код конечно нужно еще довести до ума, но в целом работает так, как я хотел (см. вложение). После реализации возникли некоторые проблемы:
1) возникли проблемы с иерархическим заголовком, который брал отсюда  (http://qt-apps.org/content/show.php/HierarchicalHeaderView?content=103154) - иногда заголовок почему то не раскрывается и не показывает нижестоящий 2 уровень, при этом если попытаться растянуть заголовок - 2 уровень появляется Непонимающий
2) опять же связано с этим заголовком, для реализации заголовка нужно вводить в модель переменную QStandardItemModel _horizontalHeaderModel, при этом если модель используется для двух представлений, то происходит зависание программы, так как одно представление уже использует QStandardItemModel _horizontalHeaderModel для заголовка. По идее можно сделать список этих самых  _horizontalHeaderModel, но мне кажется это не оптимально  Непонимающий
Из второй проблемы я вообще пришел к выводу что у меня попусту расходуется память. Дело все в том что у меня есть компонет tabWidget, в котором во вкладках создаются таблицы-представления, подключаемые к одной модели данных. При этом в зависимости от индекса вкладки модель посылает необходимую информацию в находящеюся на вкладке таблицу. По идее мне не нужно много виджетов таблиц во вкладках.- мне нужен один виджет с таблицей, который бы отображался во всех создаваемых вкладках. Можно ли такое извращение сделать с tabWidget-ом? Чтоб все вкладки отражали только один и тот же виджет, при этом вкладки играли бы только роль кнопки переключателя для модели. Может кто что посоветует по этому поводу :\
« Последнее редактирование: Июнь 04, 2010, 11:36 от SibViking » Записан
ManOfOrange
Гость
« Ответ #4 : Ноябрь 30, 2010, 10:52 »

Здравствуйте!
А не могли бы вы поделиться исходниками? А то интересуют кое-какие вопросы реализации...

Если не секрет, конечно :-)
Записан
SibViking
Гость
« Ответ #5 : Ноябрь 30, 2010, 12:39 »

Да не секрет, только сразу предупреждаю, что я не программист поэтому код не совсем оптимален Улыбающийся
Записан
ManOfOrange
Гость
« Ответ #6 : Ноябрь 30, 2010, 14:58 »

Ой, да ладно, главное, код работает, а это сейчас важнее мне :-)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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