crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> focusOutEvent
flankerr
  опции профиля:
сообщение 11.9.2008, 17:55
Сообщение #1


Активный участник
***

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

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




Репутация:   0  


Мне надо чтобы когда диалог теряет фокус (т.е. заголовок диалога становиться серым) отрабатывала некая функция. Нашлась focusOutEvent
однако эта функция вызывается даже в том случае если фокус отали дочернему элементу на диалоге..
Как отловить ситуацию именно поетри фокуса а не превода фокуса на дочерние элементы ???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 11.9.2008, 18:01
Сообщение #2


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

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

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




Репутация:   94  


посмотри в сторону enum Qt::FocusReason может оно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 11.9.2008, 20:49
Сообщение #3


Дмитрий Трошин
****

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

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




Репутация:   6  


зря вы там вот так написали:
void focusOutEvent(QFocusEvent *) { /*set code*/ }

скури внимательнее: http://doc.trolltech.com/4.3/qfocusevent.html
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
flankerr
  опции профиля:
сообщение 15.9.2008, 11:20
Сообщение #4


Активный участник
***

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

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




Репутация:   0  


чего то не понимаю я как это сделать....
а рабочего примера ни где найти не получается...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.9.2008, 11:37
Сообщение #5


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

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

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




Репутация:   94  


flankerr, ну пиши, что сделал (исходник не забудь) и как себя ведет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
flankerr
  опции профиля:
сообщение 15.9.2008, 12:27
Сообщение #6


Активный участник
***

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

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




Репутация:   0  


наслудую класс от Ui
в конструторе ставлю
setFocus();
переопределяю
focusOutEvent(QFocusEvent *e)

а дальше при потери фокуса с диалога срабатывает focusOutEvent
и всё бы хорошо но только плин он так же срабатывает и на потрерю фокуса с любого дочернего элемента или установки фокуса на любой дочерний элемент

что делать с Qt::FocusReason я так и не понял
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.9.2008, 12:36
Сообщение #7


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

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

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




Репутация:   94  


flankerr, а пост trdm'а, ты не читал?

откуда такая фукция: focusOutEvent(QFocusEvent *e)?

вот какая функция должна быть:
QFocusEvent ( Type type, Qt::FocusReason reason = Qt::OtherFocusReason )
и поумолчанию АзерРесон, т.е. любой.
а если посмотреть возможные значения Qt::FocusReason, то можно там увидеть такой вариант:
Qt::ActiveWindowFocusReason 3 The window system made this window either active or inactive.
я думаю это то, что тебе надо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
flankerr
  опции профиля:
сообщение 15.9.2008, 13:16
Сообщение #8


Активный участник
***

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

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




Репутация:   0  


читал пост trdm'а но я не понимаю как это использовать.
залаез в асситант увидел focusOutEvent(QFocusEvent *e) попробывал действитеьлно вызывается
а QFocusEvent это же класс а не функция
и про Qt::ActiveWindowFocusReason я читал

но как это всё связать я не понмиаю :(
в MSDN какой никакой а примерчик найти можно а ттут типа есть такая фенка и всё а как ей пользовать а хз...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 15.9.2008, 15:21
Сообщение #9





Гости








    


Тебе нужно выполнить функцию - когда юзер другое приложение активирует или когда в твоем приложение просто другое окно выбирает ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.9.2008, 15:41
Сообщение #10


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

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

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




Репутация:   94  


Цитата(Гость_Гость_* @ 15.9.2008, 19:21) *
другое приложение активирует или когда в твоем приложение просто другое окно выбирает
И то, и то, просто по факту: Окно потеряло фокус
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 29.3.2024, 16:35