Как создать кнопку рядом с текстом заголовка в QTreeView?
Мне нужно создать кнопку рядом с текстом заголовка, как это для сортировки.
Требования следующие:
- кнопка и текст заголовка должны быть в группе для выравнивания
- когда я нажимаю на кнопку up_arrow, список будет отсортирован (на рисунке он не отсортирован:D), а значок изменится на down_arrow для сортировки в обратном порядке.
Как я могу это сделать?
1 ответ
Если вы довольны внешним видом и поведением индикатора по умолчанию, вам будет достаточно следующего кода:
//Set up QTreeView, add model etc...
tree_view->setSortingEnabled(true);
QHeaderView* header = tree_view->header();
header->setSortIndicatorShown(true);
Если вы хотите настроить поведение сортировки, взгляните на QSortFilterProxyModel.
Для стилизации индикаторов вы можете использовать таблицу стилей Qt:
QHeaderView::down-arrow {
image: url(down_arrow.png);
}
QHeaderView::up-arrow {
image: url(up_arrow.png);
}