Russian Qt Forum
Июнь 16, 2024, 05:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: QPushButton (или любой QWidget) в заголовке QTableView  (Прочитано 6993 раз)
vertus
Гость
« : Сентябрь 27, 2011, 15:30 »

Всем доброго времени суток.

Необходимо отоброжать в горизонтальном заголовке QTableView QPushButton.

Как это можно реализовать?

Спасибо за внимание.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Сентябрь 28, 2011, 07:52 »

Как это можно реализовать?
Стандартными средствами никак  Грустный
Нужно довольно-таки "серьёзно" переписывать QHeaderView.
Записан

Qt 5.11/4.8.7 (X11/Win)
vertus
Гость
« Ответ #2 : Сентябрь 28, 2011, 08:20 »

Это конечно худший вариант.

Можешь примерно описать что нужно будет там переписывать?
Записан
alexman
Гость
« Ответ #3 : Сентябрь 28, 2011, 08:47 »

Поищи по форуму. 100% виджет уже пытались запихать Улыбающийся
Записан
vertus
Гость
« Ответ #4 : Сентябрь 28, 2011, 08:51 »

Спасибо, поищу!
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #5 : Сентябрь 28, 2011, 09:39 »

Не трать время на поиски - здесь решения нет  Грустный
Записан

Qt 5.11/4.8.7 (X11/Win)
vertus
Гость
« Ответ #6 : Сентябрь 28, 2011, 09:43 »

У меня пока на ум приходит следующее простое решение:

Отказаться от QHeaderView, и использовать первую строку в качестве заголовка.
Записан
alexman
Гость
« Ответ #7 : Сентябрь 28, 2011, 09:43 »

http://www.prog.org.ru/topic_18949_0.html

UPDATE: увидел позже, там не виджет, а перегруженная отрисовка - не то!
« Последнее редактирование: Сентябрь 28, 2011, 09:49 от alexman » Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #8 : Сентябрь 28, 2011, 10:15 »

У меня пока на ум приходит следующее простое решение:

Отказаться от QHeaderView, и использовать первую строку в качестве заголовка.
Если не требуется интерактивное изменение размера колонки, то можно попробовать. Только отказываться от QHeaderView не стоит, нужно его просто спрятать.
И найти в Qt-ишных примерах как сделать первую строку не прокручиваемой.
Записан

Qt 5.11/4.8.7 (X11/Win)
vertus
Гость
« Ответ #9 : Сентябрь 28, 2011, 10:41 »

У меня пока на ум приходит следующее простое решение:

Отказаться от QHeaderView, и использовать первую строку в качестве заголовка.
Если не требуется интерактивное изменение размера колонки, то можно попробовать. Только отказываться от QHeaderView не стоит, нужно его просто спрятать.
И найти в Qt-ишных примерах как сделать первую строку не прокручиваемой.

Может все таки осилю переопределение QHeaderView.
Записан
asvil
Гость
« Ответ #10 : Сентябрь 28, 2011, 12:31 »

Возмите QtCheckHeaderView, и замените отрисовку на свою PushButton, а вообще это конечно непросто будет сделать.
Если что есть делегат отрисовки кнопки в таблице, обработки нажатия.
Записан
vertus
Гость
« Ответ #11 : Сентябрь 28, 2011, 12:38 »

Я смотрел краем глаза твой пример. У тебя идет именно отрисовка, а мне нужен сам виджет. Пусть он даже и заместит собой всю секцию заголовка.

Делегат не катит, он активизируется только при редактировании.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #12 : Сентябрь 28, 2011, 12:53 »

Если терпит, то в понедельник покажу.
Записан

Qt 5.11/4.8.7 (X11/Win)
vertus
Гость
« Ответ #13 : Сентябрь 28, 2011, 13:48 »

Если терпит, то в понедельник покажу.

Да, терпит, спасибо!
Записан
asvil
Гость
« Ответ #14 : Сентябрь 28, 2011, 15:42 »

Нет, делегат хитрый, активен без необходимости редактирования. Собственно в этом делегате алгоритм отрисовки кнопки в разных состояниях
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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