Название: Горизонтальное дерево(таблица дерево) help Отправлено: SibViking от Май 26, 2010, 18:03 Реализуем тут один научный проект... Вообщем собственно проблема, нужен компонент для реализации представления матриц. Хотелось бы получить универсальную таблицу- представление, отображающую множество двумерных матриц N x M. Так то можно настроить стандартное табличное представление через модель таким образом, чтобы она последовательно друг за другом в колонки выводила все матрицы (чтобы их отличать друг от друга можно раскрасить разным цветом). Однако матрицы могут быть сильно громоздкими и для их функциональности хотелось бы их сворачивать по аналогии с деревом. Только здесь дерево нужно горизонтальное а не вертикальное как в стандартном компоненте QTreeView. Я уже частично написал представление, наследованное от QTableView, повесил туда замороженную строку внизу, в которую делегатом воткнул "плюсики". (см. вложение). И теперь собственно хочется понять как реаизован механизм дереева ??? в компоненте QTreeView (код), чтобы сделать разворачивающуюся матрицу или может кто подскажет более элегантное решение. Буду признателен.
Название: Re: Горизонтальное дерево(таблица дерево) help Отправлено: spectre71 от Май 29, 2010, 11:59 Реализуем тут один научный проект... Вообщем собственно проблема, нужен компонент для реализации представления матриц. Хотелось бы получить универсальную таблицу- представление, отображающую множество двумерных матриц N x M. Так то можно настроить стандартное табличное представление через модель таким образом, чтобы она последовательно друг за другом в колонки выводила все матрицы (чтобы их отличать друг от друга можно раскрасить разным цветом). Зачем все в одной куче ??? Не надо издеваться над пользователями :) Сделай отдельно навигацию по матрицам(видимо твое дерево) и таблицу в которой показывается выбранная матрица. Название: Re: Горизонтальное дерево(таблица дерево) help Отправлено: SibViking от Май 30, 2010, 02:43 Зачем все в одной куче ??? Не надо издеваться над пользователями :) Сделай отдельно навигацию по матрицам(видимо твое дерево) и таблицу в которой показывается выбранная матрица. Да просто тут смысл в том чтобы таблица содержала определенный набор данных, которые являются входами выходами определенных алгоритмов, реализующихся в одном объекте (методе), а данные объекты связываются за счтет входов и выходов друг с другом в глобальной схеме расчета; матрица - это по сути элементарный вход и выход одного объекта, таблица есть отражение всех входов или выходов одного объекта.... - вообщем долго объяснять :) поэтому представление матрицы в одной таблице не удобно для данной концепции Название: Re: Горизонтальное дерево(таблица дерево) help Отправлено: SibViking от Июнь 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-ом? Чтоб все вкладки отражали только один и тот же виджет, при этом вкладки играли бы только роль кнопки переключателя для модели. Может кто что посоветует по этому поводу :\ Название: Re: Горизонтальное дерево(таблица дерево) help Отправлено: ManOfOrange от Ноябрь 30, 2010, 10:52 Здравствуйте!
А не могли бы вы поделиться исходниками? А то интересуют кое-какие вопросы реализации... Если не секрет, конечно :-) Название: Re: Горизонтальное дерево(таблица дерево) help Отправлено: SibViking от Ноябрь 30, 2010, 12:39 Да не секрет, только сразу предупреждаю, что я не программист поэтому код не совсем оптимален :)
Название: Re: Горизонтальное дерево(таблица дерево) help Отправлено: ManOfOrange от Ноябрь 30, 2010, 14:58 Ой, да ладно, главное, код работает, а это сейчас важнее мне :-)
|