LINUX.ORG.RU

QTableView - не выделяется строка при QAbstractItemView::SelectRows

 


0

1

Есть у меня класс, унаследованный от QTableView. Для него я устанавливаю следующие параметры:

 setSelectionMode(QAbstractItemView::SingleSelection);
 setSelectionBehavior(QAbstractItemView::SelectRows);

Проблема в том, что не выделяется строка при ЛЕВОМ клике мышкой. Выделение строки ЛЕВЫМ кликом возможно только, если это первый клик на таблице. Все последующие клики не выделяют строку, а выделяют ячейку.

На экране происходит вот это:

http://i.piccy.info/i9/dd6d85d244c18553e7c6fcb6d95ccdcc/1414267658/48572/5974...

Выделенная строка №4 - была выделена при первом ЛЕВОМ клике. А ячейка в строке №2 была выделена позже, при клике ЛЕВОЙ кнопки мыши.

Не могу разобраться - у меня еще что-то не настроено в QTableView? Или это могут быть проблемы из-за переназначения сигналов?

Исходник: https://github.com/xintrea/mytetra_dev/blob/experimental/src/views/recordTabl...

★★★★★

Или это могут быть проблемы из-за переназначения сигналов?

ну закомменти все сигналы, посмотри, что будет

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

продолжай дальше до минимального примера нерабочего состояния, тогда ты увидишь то, что пытаешься найти.

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

методы on*** тоже закомменти, он их, вроде, автоматом привязывает к соотв. сигналам

По волшебству что ли? Нет такого в кутях.

Но я закомментировал все методы onXxx - такая же фигня.

Xintrea ★★★★★
() автор топика
Последнее исправление: Xintrea (всего исправлений: 1)
Ответ на: комментарий от Xintrea

По волшебству что ли? Нет такого в кутях

кути вообще волшебная хрень, и не такое могёт

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

По волшебству что ли? Нет такого в кутях.

Как это нету? Ты же читаешь литератру, которую тебе прописали? Берешь создаешь кнопку pushButton и слот on_pushButton_clicked() — и всё работает без всяких там connect'ов.

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

Мда, давно это было. Я же читал про эту возможность и успел про неё забыть. Точнее, отметил себе, что она нифига нормально не работает. Ибо даже в книгах пишут:

Глядя на автоматически созданные слоты (например. в Qt Creator). имена которых начинаются с qt_, вы тоже, скорее всего, захотите создавать слоты с такими именами. Но делать этого не следует. Имена слотов, начинающиеся с префикса on_, имеют особое значение для системы автоматического связывания сигналов и слотов Qt. Попытка связать такие слоты с сигналами обычным способом приведет к появлению странных сообщений об ошибках.

Однако, по иронии судьбы, именно в этом случае программисты, использующие Qt 4.7.0, столкнулись с досадной ошибкой в библиотеке Qt. Автоматическое связывание сигнала виджета нижнего уровня (кнопки) со слотом виджета самого верхнего уровня (окна) могло внезапно перестать работать после очередной повторной сборки приложения, так что именно эти сигнал и слот приходилось связывать «вручную» с помощью метода connect.

Поэтому я на автопилоте не доверяю префиксу «on_» с именем объекта и названием сигнала, и прописываю коннект вручную. Уже забыл из-за чего.

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