2015-03-12 5 views
2

Я добавил левый и правый отступы в заголовке QTreeView, используя этот QSS код:Добавить отступы в QTreeView Колонны

QHeaderView::section{padding:7px 15px} 

Но содержание столбцов не совпадает больше с заголовками.

unaligned QTreeView columns with headers title

Как я могу добавить отступы 15px (как в заголовке) к содержанию столбцов?

Edit: По некоторым причинам, которые я использую делегатов обратить содержание QTreeView, поэтому стилизации QTreeView::item не работает (как @svlasov предложил).

painter.translate(15, 0), похоже, исправляет эту проблему, но при выборе строки появляется странный эффект: выбор не является непрерывным.

enter image description here

ответ

2

Что-то вроде этого:

QTreeView::item { border: 0px; padding: 0 15px; } 
+0

Благодарим вас за ответ, но я сделал разъяснение, объясняющее, почему это не работает для меня. –

+0

Если вы используете делегат, выполните 'painter.drawText (rect(). Translation (15, 0), ....)' – svlasov

0

Это грубый и сырой, но это то, что вы просите в реальной простой способ для 3 колонки QTreeWidget а.

// Okay, I want to make sure my columns are wide enough for the contents, but I also 
// Don't want them squished together. So use resizeColumnToContents, to make them 
// as small as they can be to show the contents, then take those widths and add some 
// spacing and then set the columns to the new widths. 
m_tree->resizeColumnToContents (0); 
m_tree->resizeColumnToContents (1); 
int w0 = m_tree->columnWidth (0) + 20; 
int w1 = m_tree->columnWidth (1) + 20; 
m_tree->setColumnWidth (0, w0); 
m_tree->setColumnWidth (1, w1); 
+0

На самом деле, я просто перечитываю ваш вопрос, и он не делает то, что вы хотите, но он делает то, что я хотел, когда я сюда попал ;-) – Gary

+0

Это ответ или нет? – eyllanesc

Смежные вопросы