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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос по QTableWidget : как добавить checkbox в horizontalHeader?  (Прочитано 4708 раз)
tericka
Гость
« : Май 12, 2010, 13:32 »

Собственно, уже несколько дней бьюсь над задачкой - нужно реализовать функциональность "пометить  все" для одной из колонн в имеющемся QTableWidget.
Эта колонка сама состоит сплошь из чекбоксов, поэтому требуется добавить в horizontalHeader таблицы так называемый "главный" checkbox  Улыбающийся, который бы позволял одновременно выделять галочкой все строки, при нажатии на него.
Я отталкивалась от этого решения, которое мне казалось наиболее простым :

Код:
QTableWidgetItem* item = new QTableWidgetItem("Check all");
item->setCheckState(Qt::Unchecked);
table->setHorizontalHeaderItem(0, item);

Но, к сожалению, никакой галочки в моем horizontalHeader так  не проявилось.
Не могли бы вы помочь с разрешением такой проблемки, заранее спасибо.
Записан
crossly
Гость
« Ответ #1 : Май 12, 2010, 13:35 »

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

Сообщений: 2921



Просмотр профиля
« Ответ #2 : Май 12, 2010, 14:17 »

Не получится, т.к. QHeaderView не поддерживает Qt::CheckStateRole.
Я делал в Qt багтрекер запрос насчёт этого, но тролли почему-то его закрыли - типа Out of scope.
Единственное решение - перегрузить QHeaderView и самому рисовать checkbox и обрабатывать нажатия мыши - вообщем довольно-таки геморно Грустный

В ассистенте, кстати, про это так и написано:
Цитировать
Not all ItemDataRoles will have an effect on a QHeaderView. If you need to draw other roles, you can subclass QHeaderView and reimplement paintEvent(). QHeaderView respects the following item data roles: TextAlignmentRole, DisplayRole, FontRole, DecorationRole, ForegroundRole, and BackgroundRole.
Записан

Qt 5.11/4.8.7 (X11/Win)
tericka
Гость
« Ответ #3 : Май 12, 2010, 15:05 »

Спасибо, я как раз это и подозревала  Грустный Просто надеялась на лучшее, как говорится...
Собственно, после поиска по форуму и задалась этим вопросом - а поддерживает ли QHeaderView эти checkStates или же нет?
Теперь, после вашего подтвержения, что увы, CheckStateRole не поддерживается, то думаю, да, придется таки рисовать и подключать к cellClicked.
Но странно, что qt'ешники именно так отреагировали на ваш запрос, GreatSnake, все таки он не такой уж редкий.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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