QTreeView со столбцами
Я получил эти сообщения по шине can, которые должны отображаться на подходящем виджете Qt (см. Прикрепленное изображение). Кажется, я могу использовать QTreeView
для этого.
Мне нужно показать дерево, которое содержит много сообщений, как показано на картинке. Каждая строка будет содержать информацию о полученном сообщении.
Он должен состоять из столбцов:
- длина
- Время получения
- ID сообщения
- Название сообщения
- Содержание сообщения
и когда я раскрываю сообщение, оно должно показывать разные сигналы.
Как я могу сделать QTreeView со столбцами?
1 ответ
Существует проблема, которая не позволяет вам делать то, что показывает этот скриншот, и заключается в том, что уровни первого и второго уровней не имеют одинакового расположения столбцов. AFAIK, это невозможно сделать с QTableView
или же QTableWidget
текущие реализации, и вам придется реализовать свой собственный класс.
Если вы можете приспособиться к одинаковому расположению столбцов для обоих уровней, то продолжайте читать то, что я написал, прежде чем снова взглянуть на скриншот:
Вы можете, QTreeView - это всего лишь QTableView с некоторыми изображениями для первого столбца.
Добавьте все столбцы, которые вы хотите к вашей модели. Простого [QStandardItemModel][1] было бы достаточно, чтобы сделать что-то вроде скриншота
Просто запомни 2 вещи:
- Будут отображаться только дочерние элементы первого столбца.
Первый столбец не может быть скрыт.
[1]: http://qt-project.org/doc/qt-4.8/qstandarditemmodel.html