LINUX.ORG.RU

Как заставить вид QTableView выбирать только строки при ::SelectRows ?

 ,


0

1

Оказывается, вид QTableView, при использовании настройки:

setSelectionBehavior(QAbstractItemView::SelectRows);


не всегда выбирает только строки.

Например, после скрытия/показывания заголовков, выбранная строка превращается в выбранную ячейку. Есть еще какие-то действия, после которых выбор строки превращается в выбор ячейки - несколько раз натыкался, но однозначно сказать не могу. В общем, таких действий несколько, и неизвестно, где еще скрыта эта «особенность».

А у меня программа вся построена на предположении, что всегда выбрана строка таблицы, а не ячейка. И после такого самопроизвольного переключения «на ячейку» я имею сегфолт в неожиданных местах.

Вопрос: как заставить вид всегда выполнять настройку ::SelectRows? Какой-то сигнал надо отлавливать, чтобы «подправлять» работу вида? Но какой?

★★★★★

В общем, таких действий несколько, и неизвестно, где еще скрыта эта «особенность».

Это не особенность, а баг. Для известных кейсов иди к ним в жирножиру.

Stil ★★★★★ ()

Если ты используешь свою модель, особенно если это прокси-модель, то скорее всего это твой баг, например, неправильно эмиттящийся beginInsertRows/beginInsertColumns.

SelectRows работает нормально во всех известных мне стабильных версиях Qt.

grondek ()
Ответ на: комментарий от grondek

Если ты используешь свою модель, особенно если это прокси-модель, то скорее всего это твой баг, например, неправильно эмиттящийся beginInsertRows/beginInsertColumns.

Да нет, модель тут не причем вообще.

Достаточно сделать horizontalHeader()->hide() и имеем выделенную ячейку вместо строки.

Я бы мог навеситься на hideEvent() и как-нибудь обновить вид, но это полумера, ибо переключение на ячейку происходит и при других действиях.

Xintrea ★★★★★ ()
Ответ на: комментарий от grondek

Да даже если в таблице мало строк и есть снизу свободное пространство, то после клика на него курсор строки превращается в курсор ячейки.

Xintrea ★★★★★ ()
Ответ на: комментарий от grondek

SelectRows работает нормально во всех известных мне стабильных версиях Qt.

++

UVV ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.