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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сохранение состояние кнопки при потере фокуса  (Прочитано 2555 раз)
Smogg
Гость
« : Январь 23, 2013, 12:45 »

В общем, что-то типа виртуальной клавиатуры...

Примерно происходит так:
Нажимается кнопка "буква" на экране, переводится фокус на поле ввода Edit (чтобы все "нажатия" клавы попадали уже в Edit), эмулируется нажатие клавиши реальной клавиатуры, буква печатается.

Но при переводе фокуса кнопка тут же сбрасывается в "отжатое" состояние.

То есть надо как-то перехватывать ЛеваяКнопкаМышиНажать и ЛеваяКнопкаМышиОтпустить и уже самому реализовывать, что и в каком порядке происходит по этим событиям?
Если да, то где и как?
Или можно как-нибудь попроще обойтись?

PS: в Qt во всех случаях наличие фокуса у кнопки визуально не показывается пунктирной рамочкой, как везде в Виндоус?
« Последнее редактирование: Январь 23, 2013, 12:50 от Smogg » Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Январь 23, 2013, 12:53 »

Может
Код
C++ (Qt)
QAbstractButton::setChecked( true );
?
Записан

Qt 5.11/4.8.7 (X11/Win)
Smogg
Гость
« Ответ #2 : Январь 23, 2013, 13:23 »

Может
Код
C++ (Qt)
QAbstractButton::setChecked( true );
?

Да, таким способом "нажатость" сохраняется.
Только теперь ничего не происходит по отпусканию кнопки мыши и не случается сигнала released...

PS: А если собрать Check и Down вместе, то работает)) Пасиба!

Код:
void  Wnd::btn2Press(){
ui.Btn2->setCheckable(true);
ui.Btn2->setChecked(true);
ui.textEdit->setFocus();
ui.Btn2->setDown(true);
ui.Btn2->setCheckable(false);
emit  btnScrnClick('2', true); }
« Последнее редактирование: Январь 23, 2013, 13:35 от Smogg » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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