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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Tab в QTableWidget  (Прочитано 5047 раз)
alex-v
Гость
« : Февраль 22, 2011, 17:40 »

Есть таблица QTableWidget с количеством столбцов и строк [N x M].
Когда на клаве нажимаем Tab, то фокус бегает слева направо по ячейкам строки и затем сверху вниз по следующим строкам.

Как сделать, чтобы при нажатии на Tab фокус перемещался строго по одной колонке сверху вниз?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Февраль 22, 2011, 17:44 »

Читай в ассистенте про installEventFilter
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
alex-v
Гость
« Ответ #2 : Февраль 22, 2011, 17:52 »

Почитал. Разобрался.
Тока, получается, мне фильтровать ничего не нужно. Мне надо перенаправить фокус сверху вниз (по одному столбцу), а не как сейчас - слева направо по горизонтали.
Записан
alex-v
Гость
« Ответ #3 : Февраль 22, 2011, 18:02 »

т.е. как запретить фокус для одних ячеек таблицы, и разрешить их для других?
Записан
Kolobok
Гость
« Ответ #4 : Февраль 22, 2011, 18:19 »

Как сделать, чтобы при нажатии на Tab фокус перемещался строго по одной колонке сверху вниз?

Можно наследоваться от QTableWidget и переопределить moveCursor(...).

т.е. как запретить фокус для одних ячеек таблицы, и разрешить их для других?

QTableWidgetItem::setFlags ( Qt::ItemFlags flags )
Записан
alex-v
Гость
« Ответ #5 : Февраль 22, 2011, 18:27 »

Можно наследоваться от QTableWidget и переопределить moveCursor(...).

Думал об этом. При этом таблицу придётся создавать программно. А нужно бы иметь возможность её редактировать в дизайнере.


QTableWidgetItem::setFlags ( Qt::ItemFlags flags )

Смотрел. Нету там флага для запрета фокуса.
Записан
alex-v
Гость
« Ответ #6 : Февраль 22, 2011, 19:02 »

хм... видимо больше нету выхода, кроме как создать таблицу программно....
Записан
Kolobok
Гость
« Ответ #7 : Февраль 22, 2011, 19:38 »

Можно наследоваться от QTableWidget и переопределить moveCursor(...).

Думал об этом. При этом таблицу придётся создавать программно. А нужно бы иметь возможность её редактировать в дизайнере.

Связи не вижу.

Смотрел. Нету там флага для запрета фокуса.

Qt::ItemIsSelectable разве не оно?
Записан
alex-v
Гость
« Ответ #8 : Февраль 22, 2011, 19:58 »

Цитировать
Связи не вижу.
эх Улыбающийся ... оказывается в дизайнере есть функция "Преобразовать в...". Это в корне меняет дело.

Цитировать
Qt::ItemIsSelectable разве не оно?
Не. Пробовал. На фокус это не влияет. Тока на то - будет ли ячейка выделена синим фоном или нет в фокусе.

Вообщем проблема решена путём:
Цитировать
Можно наследоваться от QTableWidget и переопределить moveCursor(...).

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


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