Метки вертикального заголовка в QTreeWidget
У меня есть QTreeWidget с горизонтальными метками заголовков, и я намерен рисовать только headerLabels по вертикали, а остальные по горизонтали.
Я не хочу переопределять все в QTreeWidgets paintEvent
метод, поэтому я думаю об управлении painttevent для меток заголовка, а затем вызов суперкласса paintevent
,
Что-то вроде этого:
class MyTreeWidget: public QTreeWidget
{
public void paintEvent (QPaintEvent *e)
{
..... //Draw header labels vertically
QTreeWidget::paintEvent(e);
}
}
Я пытался вставить \n
после каждого символа при вставке headerLabels, но это очень уродливый хак и то, что я не очень хочу делать.
Моя проблема в том, что я не знаю, как получить элементы заголовка или нарисовать их вертикально. Есть идеи?
2 ответа
Я верю, что вы хотите создать QHeaderView
класс, где вы меняете реализацию по умолчанию для paintEvent( QPaintEvent* );
а затем установить свой кастом QHeaderView
класс как ваш горизонтальный заголовок для вашего MyTreeWidget
учебный класс.
Если вы используете кастом paintEvent()
Вы можете разместить символы вручную с помощью QPainter::DrawText()
, Либо распечатайте их по одному и увеличьте y
координаты выходных данных каждый раз, или, возможно, попытаться использовать Qt::TextWordWrap
флаг, чтобы они автоматически переносились на пробелы (вам нужно сделать очень узкий ограничивающий прямоугольник в этом случае, я думаю, я не пробовал).