2016-09-05 9 views
0

Я беру существующий компонент пользовательского интерфейса, который мы основали на QTableWidget, и размещаем два из них на страницах QTabWidget. Я хочу разрешить пользователю вводить данные в таблицу на первой вкладке, а затем, когда они нажимают кнопку для перехода на вторую вкладку и имеют первую ячейку в режиме редактирования.Как включить QTableWidgetItem в режим редактирования?

Я использую метод editItem QTableWidget для редактирования данного QTableWidgetItem. Беда в том, что что-то происходит, чтобы остановить редактирование (или, возможно, оно никогда не начинается в первую очередь).

Если я вызову editItem во второй раз, это не сработает, но если я нажму на ячейку, то он войдет в режим редактирования с выделенной ячейкой и мигает курсор. Мне просто интересно, есть ли способ сделать это программно, что я, возможно, пропустил?

Одним из вариантов было бы симулировать нажатие клавиши табуляции, а затем shift-tab, но я не смог этого сделать. Я могу смоделировать вкладку, но если я попытаюсь добавить модификатор сдвига, то она будет выглядеть нормально.

Это моя закладка код, который работает:

QApplication::postEvent(tableWidget, new QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier));

Это мой язычок сдвига кода, который не работает:

QApplication::postEvent(tableWidget, new QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::ShiftModifier));

Любые предложения будут оценены.

ответ

0

Похоже, Shift-Tab фактически отражается как Qt :: Key_Backtab, а не Qt :: Key_Tab с модификатором сдвига, как я ожидал ...

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