Название: Окно + фокус ввода. Отправлено: someLogin от Июнь 13, 2009, 21:42 Помогите сделать окно не принимающее фокус. То есть что бы окно никогда не становилось активным по Alt+Tab и мышиным событиям, ну и тд.
upd. нужно что бы окошко все мышиные события передавало нижележащиму окну, либо рабочему столу. p. s. извиняюсь за некорректное описание проблемы. :) Название: Re: Окно + фокус ввода. Отправлено: MoPDoBoPoT от Июнь 14, 2009, 00:11 void QWidget::setFocusPolicy ( Qt::NoFocus )
или ловить через фильтр событие QFocusEvent с gotFocus==true и не передавать событие видету или переопределить void QWidget::focusInEvent ( QFocusEvent * event ) [virtual protected] виджета Название: Re: Окно + фокус ввода. Отправлено: Alex Custov от Июнь 14, 2009, 17:06 Код
Название: Re: Окно + фокус ввода. Отправлено: someLogin от Июнь 14, 2009, 18:19 Не получается, окно все равно создается с фокусом (активным) и запросто его (фокус) ловит...
Название: Re: Окно + фокус ввода. Отправлено: Alex Custov от Июнь 15, 2009, 12:18 Не получается, окно все равно создается с фокусом (активным) и запросто его (фокус) ловит... не работает какой из предложенных вариантов? :) Если с XWMHints, то какой оконный менеджер? Название: Re: Окно + фокус ввода. Отправлено: someLogin от Июнь 15, 2009, 16:09 Непереносимое решение не проверял.
Название: Re: Окно + фокус ввода. Отправлено: Alex Custov от Июнь 15, 2009, 17:15 Непереносимое решение не проверял. переносимого решения для такой задачи боюсь может не быть :-\ Название: Re: Окно + фокус ввода. Отправлено: SASA от Июнь 15, 2009, 17:47 upd. нужно что бы окошко все мышиные события передавало нижележащиму окну, либо рабочему столу. Цитировать classMyApp : public QApplication { Q_OBJECT public: MyApp(int &argc, char **argv, int = QT_VERSION); ~MyApp(); virtual bool notify ( QObject * receiver, QEvent * event ); { if (event->type() == QEvent::MouseMove) { QPoint p = ((QMouseEvent*)event)->globalPos(); QWidget* newReceiver = widgetAt(p); if (newReceiver) // а таки лежит { ((QWidget*)receiver)->setCursor(newReceiver->cursor()); receiver = newReceiver; } } return QApplication::notify(receiver,event); } }; |