Редактирование в QTableView |
Здравствуйте, гость ( Вход | Регистрация )
Редактирование в QTableView |
Elrock |
11.9.2009, 6:48
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 21.1.2008 Пользователь №: 75 Спасибо сказали: 0 раз(а) Репутация: 0 |
У меня данные редактируются в классе наследованном от QTableView.
В качестве модели используется наследованный от QStandardItemModel; Никакие виртуальные функции не преопределены, сигналы не перехватываются. Делегат один на всю таблицу. Редактор в делегате универсальный - чтобы можно было редактировать различные типы данных - на подложке унаследованной от QWidget в зависимости от типа данных устанавливаются различные виджеты: Раскрывающийся текст
Вообше то все работает. Но есть вопросы: 1. Чтобы начать редактирование, нужно двойным кликом создать виджет редакторования в ячейке и еще один клик чтобы начать редактирование. Многовато. Можно сделать меньше? 2. Как приступить к редактированию ячейки нажатием клавиши Enter? |
|
|
SABROG |
11.9.2009, 11:24
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
|
|
|
Litkevich Yuriy |
11.9.2009, 16:29
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Elrock, прочитай тему "Справка по кнопкам и тэгам форума"
2. Как приступить к редактированию ячейки нажатием клавиши Enter? по умолчанию должно именно так работать.
|
|
|
SABROG |
11.9.2009, 16:43
Сообщение
#4
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Elrock, прочитай тему "Справка по кнопкам и тэгам форума" 2. Как приступить к редактированию ячейки нажатием клавиши Enter? по умолчанию должно именно так работать.Это странно, т.к. у меня редактируется ячейка также как в Excel - по F2. А по Enter ничего не происходит (в Excel это перемещение на следующую ячейку). |
|
|
Elrock |
11.9.2009, 17:05
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 21.1.2008 Пользователь №: 75 Спасибо сказали: 0 раз(а) Репутация: 0 |
Спасибо. Ячейку уже можно редакьтировать после двойного клика.
Но осталась вторая проблема В виджете наследованном от QTableView переопределил :
Теперь при нажатии клавиши Enter создаеьтся редактор. Как сразу получит фокус ввода с клавиатуры, чтобы после нажатия Enter отредактировать ячейку - как это сделано в 1С Предприятии? |
|
|
Elrock |
13.9.2009, 9:11
Сообщение
#6
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 21.1.2008 Пользователь №: 75 Спасибо сказали: 0 раз(а) Репутация: 0 |
Проблеме решилась созданием класса, используемого в делегате, который в зависимости от типа данных размешает в виджете parent нужные виджеты для редактирования - QLineEdit, QSpinBox и т.д.
|
|
|
Текстовая версия | Сейчас: 27.12.2024, 12:11 |