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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: ##РЕШЕНО## Каков алгоритм действий?  (Прочитано 3773 раз)
Inhibitor
Гость
« : Январь 14, 2016, 10:10 »

Добрый день.

Ситуация примерно такова: есть форма на которой расположено несколько пар "QSpinBox - QPushButton". Предполагалось что сначала пользователь вводит значение через QSpinBox, а потом по нажатию соответствующей QPushButton сохраняет значение в приложении. Однако, после тестирования, пользователь изъявил желание сохранять значение из QSpinBox по нажатию кнопки "Enter". Но и кнопки было решено оставить.

Подскажите, какой порядок действий должен быть, чтобы приложение корректно отрабатывало и по нажатию "Enter" и по нажатию QPushButton?
« Последнее редактирование: Январь 14, 2016, 16:28 от Inhibitor » Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Январь 14, 2016, 10:54 »

Например, создаете свой spinbox и переопределяете событие keyRelease, там проверяете key() на константу
Код
Python
class SpinBox(QSpinBox):
   def keyReleaseEvent(self, event):
       super().keyReleaseEvent(event)
 
       if event.key() == Qt.Key_Return:
           print('Enter')
 

Другой способ, использование фильтра -- eventFilter, тогда не придется создавать свой spinbox

Тут подробнее по вашей теме: http://doc.qt.io/qt-4.8/eventsandfilters.html
Записан

Bepec
Гость
« Ответ #2 : Январь 14, 2016, 11:01 »

Зацепить всё на один слот.
Сигнал от кнопки и сигнал от spinEdit.
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #3 : Январь 14, 2016, 11:46 »

Зацепить всё на один слот.
Сигнал от кнопки и сигнал от spinEdit.

И вправду ))
Не посмотрел в асбтрактном спинбоксе сигнал editingFinished()
Записан

Inhibitor
Гость
« Ответ #4 : Январь 14, 2016, 16:28 »

 Bepec, gil9red, спасибо большое!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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