Russian Qt Forum
Октябрь 01, 2024, 22:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QToolButton на QHeaderView  (Прочитано 4053 раз)
shar
Гость
« : Август 05, 2010, 11:18 »

Хочу на наследнике QHeaderView разместить кнопку. Походил по форуму нашел много чего об иерархических HeaderView, но ничего по моей проблеме. Я так понимаю, можно попробовать отрисовать через QStyle, но тогда придется отлавливать события кликов на кнопку - похоже на велосипед. Или может можно разместить QToolButton прямо на секции HeaderView. Вопрос в том как правильнее?
Записан
asvil
Гость
« Ответ #1 : Август 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();
Записан
shar
Гость
« Ответ #2 : Август 05, 2010, 16:45 »

Пример размещения QLineEdit на определенной секции заголовка.
Я так понимаю в этом случае QLineEdit будет занимать весь размер секции, в любом случае посмотрю Ваш пример. Мне нужно отображать не на всю секцию.
Что-то вроде
---------------------------------------------------------------
|Button|                 HeaderData                       | SortIndicator|
---------------------------------------------------------------
Записан
asvil
Гость
« Ответ #3 : Август 05, 2010, 19:45 »

Ага, чтобы headerData не закрывалась? Тогда необходимо кроме создания виджета, еще и QHeaderView::paintSection переопределить. Если так, помогу и с этим.
Записан
shar
Гость
« Ответ #4 : Август 25, 2010, 23:06 »

Ага, чтобы headerData не закрывалась? Тогда необходимо кроме создания виджета, еще и QHeaderView::paintSection переопределить. Если так, помогу и с этим.
В общем получилось и QToolButton разместить на секции, и вручную отрисовать, думаю первый вариант лучше. Попытался сделать кнопочки для фильтрации данных в QAbstractItemView. Выкладываю код на суд форумчан. Код грязный, до чистки еще руки не дошли. Буду рад критике.
« Последнее редактирование: Август 26, 2010, 19:20 от shar » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 21.