Могу ли я иметь более одной строки в заголовке таблицы в Qt? - PullRequest
7 голосов
/ 25 февраля 2010

Я использую Qt4, и у меня есть QTableView, который отображает данные с использованием пользовательской модели. Я хотел бы иметь две строки в заголовке таблицы, в идеале с некоторыми ячейками в первой строке, охватывающими несколько столбцов. Это возможно?

Ответы [ 4 ]

5 голосов
/ 25 ноября 2013

У меня была похожая проблема с несколькими строками заголовка QTableView. Я решил это с помощью простого "\ n" в тексте заголовка столбца.

3 голосов
/ 13 сентября 2013

Я тоже искал решение этой проблемы. Я нашел этот класс: HierarchicalHeaderView на qt-apps.org от пользователя Barmaglodd (Краснощеков Петр).

Это решение выходит за рамки того, что вам (и мне) нужно. Кроме того, я не могу использовать их решение из-за уведомления об авторских правах.

Это сообщение от blog.qt.digia.com Энди Шоу показывает, как наложить QComboBox на заголовок. В моем решении я сделал то же самое с другим представлением заголовка. Это похоже на то, как они наложили QTableView на QTableView для примера столбца Qt Frozen . Для этого решения вам нужно создать подкласс QTableWidget и QHeaderView. Кроме того, если вы хотите, чтобы пользователь настраивал ширину столбца, которая требует дополнительной работы.

Совет: перегрузите SizeHint, чтобы получить высоту, в 2 раза превышающую нормальную высоту основного заголовка, выровняйте текст основного заголовка снизу и нарисуйте другой заголовок поверх обычного, сделайте это

showEvent(QShowEvent* e)

способ.

2 голосов
/ 04 декабря 2015

Под впечатлением HierarchicalHeaderView Я сделал его порт Python и простую модель для отображения панд DataFrames с многоуровневыми заголовками (MultiIndex) в QTableView.

Вот первые результаты dataframemodel . upd: это довольно медленно с большими DataFrames

2 голосов
/ 26 февраля 2010

Вы можете создать собственный заголовок, сделав QTableWidgetItem, а затем используя setHorizontalHeaderItem(). Метод принимает номер столбца, поэтому я не уверен, что это позволит охватить несколько столбцов изначально - однако, по крайней мере, вы можете использовать один и тот же QTableWidgetItem для нескольких столбцов.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...