Могу ли я иметь более одной строки в заголовке таблицы в Qt?
Я использую Qt4 и у меня QTableView
, который отображает данные с помощью настраиваемой модели. Я хотел бы иметь две строки в заголовке таблицы, в идеале с некоторыми ячейками в первой строке, охватывающей несколько столбцов. Возможно ли это?
4 ответов
Я тоже искал решение этой проблемы. Я нашел этот класс: HierarchicalHeaderView на qt-apps.org от пользователя Barmaglodd (Краснощеков Петр).
это решение выходит за рамки того, что вам (и мне) нужно. Кроме того, я не могу использовать их решение из-за их уведомления об авторских правах.
этот пост от blog.qt.digia.com Энди шоу показывает вам, как накладывать QComboBoxes на заголовок. В моем решении я сделал то же самое с другой вид заголовка. Это похоже на то, как они наложил QTableView на QTableView для примера замороженного столбца Qt. Для этого решения вам нужно подкласс QTableWidget и QHeaderView. Кроме того, если вы хотите, чтобы пользователь отрегулировал ширину столбца, которая требует дополнительной работы.
Tip: перегрузите SizeHint, чтобы дать высоту 2x нормальной высоты "основного" headerview, выровняйте текст основного вида заголовка снизу и нарисуйте другой headerview на в верхней части обычного, сделайте это в
showEvent(QShowEvent* e)
метод.
У меня была похожая проблема несколько строк headder из лист. Я решил его, используя простой "\n " в тексте заголовка столбца.
вы можете сделать пользовательский заголовок, сделав QTableWidgetItem
, а затем с помощью setHorizontalHeaderItem()
. Метод принимает номер столбца, поэтому я не уверен, что это позволит охватить несколько столбцов изначально-однако, по крайней мере, вы можете использовать то же самое QTableWidgetItem
для нескольких столбцов.
что касается использования двух строк в заголовке, я не считаю, что это в настоящее время поддерживается. Однако вы, вероятно, можете добавить эту функциональность, свернув свой собственный производный класс QTableWidget
Если вы не амбициозный.
под впечатлением HierarchicalHeaderView Я сделал из него порт Python и простую модель для отображения фреймов данных pandas с многоуровневыми заголовками (MultiIndex) в QTableView.
вот первые результаты dataframemodel. upd: это довольно медленно с большими кадрами данных