crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> получение фокуса
berserk
  опции профиля:
сообщение 10.2.2009, 22:25
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 9.2.2009
Пользователь №: 540

Спасибо сказали: 0 раз(а)




Репутация:   0  


Есть форма, на которой имеется несколько виджетов LineEdit. Для некоторых LineEdit необходимо при получении фокуса произвести какие нибудь действия. Читаю в доках про QFocusEvent и не совсем понимаю его работу. Как определить что именно конкретный lineEdit получил фокус? Если можно пните на конкретный пример...

ЗЫ: возможно не совсем понятно написал, т.к. не полностью освоил терминологию

Модераторы удалите плиз клонов темы, какой то глюк случился
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 10.2.2009, 22:42
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Смотри: void QWidget::focusInEvent ( QFocusEvent * event ) [virtual protected]

Цитата(berserk @ 10.2.2009, 22:25) *
Модераторы удалите плиз клонов темы, какой то глюк случился
Просто не нужно несколько раз нажимать на кнопку "Отправить"... ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
berserk
  опции профиля:
сообщение 11.2.2009, 9:19
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 9.2.2009
Пользователь №: 540

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(ViGOur @ 10.2.2009, 22:42) *
Смотри: void QWidget::focusInEvent ( QFocusEvent * event ) [virtual protected]

Цитата(berserk @ 10.2.2009, 22:25) *
Модераторы удалите плиз клонов темы, какой то глюк случился
Просто не нужно несколько раз нажимать на кнопку "Отправить"... ;)


мозила первые 2 раза сказала что форум не отвечает, попробуйте ещё раз...

void QWidget::focusInEvent ( QFocusEvent * event )
смотрел не совсем догнал, вроде как событие происходит при получении фокуса любым виджетом формы (или я не правильно понял), как определить что именно конкретный виджет фокус получил?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 11.2.2009, 9:56
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(berserk @ 11.2.2009, 12:19) *
фокуса любым виджетом формы
как видишь это метод класса QWidget, соответственно в своем виджете его и реализуй.

внутри обработчика можешь использовать метод QWidget::hasFocus() для конкретного(ных) виджета(ов), чтобы определить, кто из них в фокусе.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
berserk
  опции профиля:
сообщение 11.2.2009, 15:48
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 9.2.2009
Пользователь №: 540

Спасибо сказали: 0 раз(а)




Репутация:   0  


блин не работает. Вот что написал

CODE
void MainWindowImpl::focusInEvent(QFocusEvent * event)
{
if (loginLineEdit->hasFocus())
{
message.setText("!!!!!");
message.exec();
}
}


наткнулся на http://www.forum.crossplatform.ru/index.ph...hl=focusinevent

особенно интересует 9 пост http://www.forum.crossplatform.ru/index.ph...post&p=8425
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Константин
  опции профиля:
сообщение 11.2.2009, 16:22
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 69
Регистрация: 9.2.2009
Пользователь №: 539

Спасибо сказали: 15 раз(а)




Репутация:   1  


хочешь поймать событие для loginLineEdit и ловишь его в MainWindowImpl? чуешь подвох? :)
либо перегрузи focusInEvent в loginLineEdit, илбо фильтруй события (читать QObject::installEventFilter). второе удобнее.

зы. не забывай вызывать методы суперкласса из перегруженных, если не знаешь что в них реализовано!

void MainWindowImpl::focusInEvent(QFocusEvent * event)
{
    QMainWindow::focusInEvent(event);
    //...
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 16.4.2024, 22:04