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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] QTreeWidget редактирование + клавиша enter  (Прочитано 6947 раз)
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« : Март 25, 2015, 16:16 »

Привет, друзья!
У меня имеется класс, наследованный от QTreeWidget. В нём переопределено нажатие enter:
Код
C++ (Qt)
void ModelTree::keyPressEvent(QKeyEvent *event)
{
   if (event->key() == Qt::Key_Return)
       editVolumes(selectedItems());
   else
       QTreeWidget::keyPressEvent(event);
}
 
Теперь получается, что когда я переименовываю элемент в дереве, по нажатию enter я получаю помимо принятия нового имени вызов editVolumes.
Как отделить мух от котлет?
« Последнее редактирование: Март 26, 2015, 11:12 от __Heaven__ » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Март 25, 2015, 20:49 »

заведи флажок, который будет означать начало/конец редактирования
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #2 : Март 25, 2015, 22:32 »

Как ловится начало/конец редактирования?
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #3 : Март 26, 2015, 11:03 »

Гляжу в сторону
Код
C++ (Qt)
void QTreeWidget::​openPersistentEditor(QTreeWidgetItem * item, int column = 0)
Но мне это как-то не по душе. Чистой воды костыль
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #4 : Март 26, 2015, 11:11 »

Нашёл!
Код
C++ (Qt)
state() != QTreeWidget::EditingState
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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