crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> потеря фокуса, как отловить потерю фокуса у диалога ?
flankerr
  опции профиля:
сообщение 11.9.2008, 12:43
Сообщение #1


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

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

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




Репутация:   0  


как отловить потерю фокуса у диалога ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 11.9.2008, 13:06
Сообщение #2


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

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

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




Репутация:   6  


QWidget::focusInEvent/ QWidget::focusOutEvent?
Ассистант рулит....

Сообщение отредактировал trdm - 11.9.2008, 13:06
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
flankerr
  опции профиля:
сообщение 11.9.2008, 13:46
Сообщение #3


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

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

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




Репутация:   0  


Цитата(trdm @ 11.9.2008, 14:06) *
QWidget::focusInEvent/ QWidget::focusOutEvent?Ассистант рулит....

рулит одназначно! А ещё больше рулит личный опыт! ;)

НЕ работает! или я не умею "готовить"....
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ЙаМайскЫйПчОЛ
  опции профиля:
сообщение 11.9.2008, 13:55
Сообщение #4


Участник
**

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

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




Репутация:   5  


Личный опыт на иностранном языке звучит как first experience, и открывает сущность термина.
Он всегда первый и не может быть передан с сохранением личностных свойств.
Если тебе нужен личный опыт, тогда исследуй сам.
а
Цитата(flankerr @ 11.9.2008, 14:46) *
НЕ работает! или я не умею "готовить"....


тогда давай код.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
flankerr
  опции профиля:
сообщение 11.9.2008, 14:03
Сообщение #5


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

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

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




Репутация:   0  


Цитата(ЙаМайскЫйПчОЛ @ 11.9.2008, 14:55) *
Личный опыт на иностранном языке звучит как first experience, и открывает сущность термина.
Он всегда первый и не может быть передан с сохранением личностных свойств.
Если тебе нужен личный опыт, тогда исследуй сам.
]
нашла каса на камень и пошла философия :)

что касается опыта...
просто хотел сказать что посмотреть в ассистенс могу и сам и просто тупо торкать носом туда не стоит, особенно если нет своего опыта работы с озвученым ворпосом;) если написал тут значит что-то не сраслось...



код...
ну я тупо взял ассистенс..
и переопредлил у себя в классе диалога focusOutEvent ( QFocusEvent * event ) и вот после потери фокуса в эту функцию вхождений нет.

Сообщение отредактировал flankerr - 11.9.2008, 14:05
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ЙаМайскЫйПчОЛ
  опции профиля:
сообщение 11.9.2008, 14:23
Сообщение #6


Участник
**

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

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




Репутация:   5  


А ты ему перед этим setFocus делаешь?

assistant
A widget normally must setFocusPolicy() to something other than Qt::NoFocus in order to receive focus events. (Note that the application programmer can call setFocus() on any widget, even those that do not normally accept focus.)

так что поробуй явно.

Сообщение отредактировал ЙаМайскЫйПчОЛ - 11.9.2008, 14:29
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
flankerr
  опции профиля:
сообщение 11.9.2008, 14:26
Сообщение #7


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

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

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




Репутация:   0  


явным образом нет.
идея проста
1. создал дилог через new
2.сделал show т.е вывел диалог на экран
3.как только фокус теряется (ну предположим я мышкой щёлкаю в не области диалога) мне надо получить какоето сообзение.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ЙаМайскЫйПчОЛ
  опции профиля:
сообщение 11.9.2008, 15:33
Сообщение #8


Участник
**

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

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




Репутация:   5  


???
вобщем не дождался от тебя реакции.
#ifndef DIALOGIMPL_H
#define DIALOGIMPL_H
//
#include <QDialog>
#include "ui_dialog.h"
//
class DialogImpl : public QDialog, public Ui::Dialog
{
Q_OBJECT
public:
    DialogImpl( QWidget * parent = 0, Qt::WFlags f = 0 ): QDialog(parent, f)
    {
        setupUi(this);
        setFocus();
    }
private slots:
    void focusOutEvent(QFocusEvent *) { /*set code*/ }
};
#endif

это работает
если проблеммы читай http://www.forum.crossplatform.ru/index.ph...post&p=8423

Сообщение отредактировал ЙаМайскЫйПчОЛ - 11.9.2008, 15:37
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
flankerr
  опции профиля:
сообщение 11.9.2008, 16:31
Сообщение #9


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

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

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




Репутация:   0  


толи лыжи не едут толи я...
у меян не работает...
единственное отличие это то что у меня нет setupUi(this); и public Ui::Dialog

class DialogImpl : public QDialog
{
Q_OBJECT
public:
    DialogImpl( QWidget * parent = 0, Qt::WFlags f = 0 ): QDialog(parent, f)
    {
        setFocus();
    }
private slots:
    void focusOutEvent(QFocusEvent *) { /*set code*/ }
};


лыжи поехали...
оказалось без ui_dialog.h работать не будет
создал диалог в редакторе и заработало

Плин focusOutEvent вызывается во всех случаях если мышкой торкнуть в не оласти ЗАГОЛОВКА.
т.е. даже если я торкаю по комбоксу внутри лдиалога то вызывется focusOutEvent....
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
flankerr
  опции профиля:
сообщение 11.9.2008, 17:59
Сообщение #10


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

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

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




Репутация:   0  


продолжение вынес в отдельную тему...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 1.12.2020, 2:59