Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
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, прочитай тему "Link"
Цитата(Elrock @ 11.9.2009, 10:48) Link 2. Как приступить к редактированию ячейки нажатием клавиши Enter? по умолчанию должно именно так работать.
|
|
|
|
|
SABROG |
11.9.2009, 16:43
Сообщение
#4
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34
|
Цитата(Litkevich Yuriy @ 11.9.2009, 17:29) Link Elrock, прочитай тему "Link" Цитата(Elrock @ 11.9.2009, 10:48) Link 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 и т.д.
|
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 25.12.2025, 0:19 |