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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Запретить кликать за претелами таблицы  (Прочитано 3343 раз)
Flakes
Гость
« : Ноябрь 23, 2009, 06:40 »

Если кликнуть не по таблице, а за ее пределами, то выборка сбросится. Как отключить это? Нужно чтоб ничего не сбрасывалось и вообще никак на это не реагировала.

Записан
uriel
Гость
« Ответ #1 : Ноябрь 23, 2009, 08:18 »

Можно попробовать решить проблему установкой на виджет таблицы фильтра событий с таким вот кодом:
Код
C++ (Qt)
QTableWidgetItem *currentItem = table->temAt(table->viewport()->mapFromGlobal(ev->globalPos()));
if (!currentItem)
return true;
Записан
Flakes
Гость
« Ответ #2 : Ноябрь 24, 2009, 05:39 »

Сделал так:
Код
C++ (Qt)
void MyTableView::mousePressEvent(QMouseEvent *event)
{
QModelIndex index = this->indexAt(this->viewport()->mapFromGlobal(event->globalPos()));
if (!index.isValid()){
return;
} else {
QTableView::mousePressEvent(event);
}
}
 

Метод работает как надо, то есть на неправильном индексе оно идет на return. Но евент все равно срабатывает нормально и селект сбрасывается.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #3 : Ноябрь 24, 2009, 06:42 »

может перед return делать event->ignore() ?
Записан

Юра.
Flakes
Гость
« Ответ #4 : Ноябрь 24, 2009, 07:50 »

может перед return делать event->ignore() ?

Пробовал, не помогает.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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