Настройка порядка вкладок для QTableView в Qt 4.4 - PullRequest
6 голосов
/ 09 марта 2010

У меня QTableView, в котором есть данные, загруженные с помощью QStandardItemModel в форме

Parameter    Value

  X1         0.456
  X2         0.123
 .... and so on.

Теперь мне нужно установить свойство Tab Order таким образом, чтобы я мог проходить только через значения, а непараметры.то есть когда элемент управления находится на 0,456, и если я нажимаю клавишу «Tab», он должен перейти к 0,123, а не к X2 (поведение по умолчанию).Также в столбце Parameter отключены триггеры Edt, и я могу изменять только значения.

Я знаю QWidget :: setTabOrder (QWidget *, QWidget *), но так как я устанавливаю данные через QStandardItemModel, как я могу получить желаемыйПорядок табуляции в QTableView?Я использую Qt 4.4 и Windows XP.Также я не использовал Qt designer для разработки элементов пользовательского интерфейса.Все только через код.

Ответы [ 2 ]

2 голосов
/ 08 октября 2010

На самом деле keyPressEvent не генерируется при редактировании, вместо этого вы должны переопределить closeEditor и проверить подсказку. Если подсказка QAbstractItemDelegate :: EditNextItem, тогда измените selectionModel :: currentIndex и используйте use QTableView :: edit.

Другое решение работает только тогда, когда вы не редактируете, но в любом случае оно дало мне отправную точку, поэтому я даю ему награду

2 голосов
/ 08 октября 2010

Подкласс QTableView и переопределение keyPressEvent. Проверьте наличие клавиши tab в событии, иначе вызовите базовую реализацию. Получить текущий выбранный индекс из модели выбора представления. Установите для edittrigger представления значение CurrentChanged или установите собственный QItemDelegate для ручного управления.

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