Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: shar от Август 05, 2010, 11:18



Название: QToolButton на QHeaderView
Отправлено: shar от Август 05, 2010, 11:18
Хочу на наследнике QHeaderView разместить кнопку. Походил по форуму нашел много чего об иерархических HeaderView, но ничего по моей проблеме. Я так понимаю, можно попробовать отрисовать через QStyle, но тогда придется отлавливать события кликов на кнопку - похоже на велосипед. Или может можно разместить QToolButton прямо на секции HeaderView. Вопрос в том как правильнее?


Название: Re: QToolButton на QHeaderView
Отправлено: asvil от Август 05, 2010, 15:53
Пример размещения QLineEdit на определенной секции заголовка.
Код:
QRect indexRect;
QWidget *editor = QLineEdit(this);
int xOrY = sectionViewportPosition(logicalIndex);
if (orientation() == Qt::Horizontal)
  indexRect.setRect( xOrY, 0, sectionSize(logicalIndex), height());
else
  indexRect.setRect( 0, xOrY, width(), sectionSize(logicalIndex));

editor.setGeometry(indexRect);
viewport()->stackUnder(editor);
editor->show();
editor->setFocus();


Название: Re: QToolButton на QHeaderView
Отправлено: shar от Август 05, 2010, 16:45
Пример размещения QLineEdit на определенной секции заголовка.
Я так понимаю в этом случае QLineEdit будет занимать весь размер секции, в любом случае посмотрю Ваш пример. Мне нужно отображать не на всю секцию.
Что-то вроде
---------------------------------------------------------------
|Button|                 HeaderData                       | SortIndicator|
---------------------------------------------------------------


Название: Re: QToolButton на QHeaderView
Отправлено: asvil от Август 05, 2010, 19:45
Ага, чтобы headerData не закрывалась? Тогда необходимо кроме создания виджета, еще и QHeaderView::paintSection переопределить. Если так, помогу и с этим.


Название: Re: QToolButton на QHeaderView
Отправлено: shar от Август 25, 2010, 23:06
Ага, чтобы headerData не закрывалась? Тогда необходимо кроме создания виджета, еще и QHeaderView::paintSection переопределить. Если так, помогу и с этим.
В общем получилось и QToolButton разместить на секции, и вручную отрисовать, думаю первый вариант лучше. Попытался сделать кнопочки для фильтрации данных в QAbstractItemView. Выкладываю код на суд форумчан. Код грязный, до чистки еще руки не дошли. Буду рад критике.