LINUX.ORG.RU

[Qt] QTreeView и QFileSystemModel — неправильное выравнивание текста

 


0

1

Имеется ‘QFileSystemModel *fsModel; QTreeView *treeView; QVBoxLayout *layout1’. Создаю так:

fsModel = new QFileSystemModel;
treeView = new QTreeView(this); // this — это QWidget *
fsModel->setRootPath("/");
treeView->setModel(fsModel);
treeView->setSelectionBehavior(QTreeView::SelectItems);
treeView->setSelectionMode(QTreeView::ExtendedSelection);
treeView->setAnimated(true);
treeView->setIconSize(QSize(24, 24));
treeView->setSortingEnabled(true);
treeView->sortByColumn(0, Qt::AscendingOrder);
treeView->setFrameStyle(QTreeView::NoFrame);
layout1->addWidget(treeView);
setLayout(layout1);

Выглядит это так: http://ompldr.org/vYW5ndg

Видно, что в колонке Size текст выравнивается по вертикали по верху, а в остальных по центру, поэтому получается, что текст не на одном уровне. Также в заголовке текст также выравнивается по верху, т.е. получается неровно. Хотелось бы, чтобы в ячейках во всех колонках текст выравнивался по центру (по вертикали), чтобы в заголовке он тоже выравнивался по центру (по вертикали) и чтобы заголовок был не таким высоким. Вот как это выглядит в Dolphin: http://ompldr.org/vYW5oMA

Вопрос: как сделать, чтобы было, как в Dolphin, т.е. заголовок QTreeView низкий, а текст во всех ячейках был выровнен по вертикали по центру?

★★★★★

Последнее исправление: gentoo_root (всего исправлений: 1)

Ответ на: комментарий от Kosyak

Спасибо, это то, что нужно. Выравнивание починил через Qt::TextAlignmentRole в data() и headerData(), а высоту заголовка через Qt::SizeHintRole в headerData().

gentoo_root ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.