Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Smogg от Январь 23, 2013, 12:45



Название: Сохранение состояние кнопки при потере фокуса
Отправлено: Smogg от Январь 23, 2013, 12:45
В общем, что-то типа виртуальной клавиатуры...

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

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

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

PS: в Qt во всех случаях наличие фокуса у кнопки визуально не показывается пунктирной рамочкой, как везде в Виндоус?


Название: Re: Сохранение состояние кнопки при потере фокуса
Отправлено: GreatSnake от Январь 23, 2013, 12:53
Может
Код
C++ (Qt)
QAbstractButton::setChecked( true );
?


Название: Re: Сохранение состояние кнопки при потере фокуса
Отправлено: Smogg от Январь 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); }