Как сделать QheaderView многоуровневым?

Я создаю приложение, которое сохраняет данные службы отправки объектов.

Я создал это с Qtмодель типа QStandardItemModel что я хочу показать с QtableView,

Но QtableView показывает мне уровень линии слева. Я хочу удалить или скрыть, если это возможно.

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

Спасибо за ваш ответ, потому что это действительно важно для меня.

введите описание изображения здесь

0

Решение

Этот тип QHeaderView не существует, но мы можем создать его для него, мы должны создать класс, который наследует от QHeaderView и переписать в основном метод paintSection который является методом, отвечающим за рисование разделов QHeaderView,

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

Объясните, логика каждого метода обширна, поэтому поместите только ссылка на сайт проекта, который реализует вышеупомянутое и описывает задачу каждого класса:

  • TableHeaderItem: Он отвечает за сохранение информации о каждом элементе, в основном, о строках строк и столбцах в дополнение к метке.

  • GridTableHeaderModel: Класс модели, обеспечивающий доступ к каждому элементу, чтобы мы могли редактировать и читать каждый элемент

  • GridTableHeaderView: Этот класс является обычаем QHeaderView где основные методы перезаписаны, чтобы получить желаемый вид.

  • GridTableView(необязательно): это TableView, у которого есть методы для работы напрямую с GridTableHeaderView.

Выход:

введите описание изображения здесь

Замечания: чтобы скрыть вертикальный заголовок, необходимо использовать только hide() метод:

horizontalHeader()->hide();
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]