crossplatform.ru

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

11 страниц V  « < 6 7 8 9 10 > »   
Ответить в данную темуНачать новую тему
> QPaintEvent, installEventFilter, QPainter, Overpainting
SABROG
  опции профиля:
сообщение 28.5.2009, 13:08
Сообщение #71


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


#ifndef __POSTEVENTFILTER_H
#define __POSTEVENTFILTER_H

#include <QList>
#include <QEvent>

#define WW_POSTEVENTFILTER(superclass) \
public: \
void installPostEventFilter(QObject *monitor){ \
  postFilters.push_front(monitor); \
} \
void removePostEventFilter(QObject *monitor){ \
  postFilters.removeAll(monitor); \
} \
private: \
QList<QObject*> postFilters; \
protected: \
  bool event(QEvent *e){ \
    bool ret = superclass::event(e); \
    if(!ret) \
      return false; \
    foreach(QObject *o, postFilters){ \
    bool r; \
    QMetaObject::invokeMethod(o, "postEventFilter", Qt::DirectConnection, Q_RETURN_ARG(bool, r), Q_ARG(QObject*, this), Q_ARG(QEvent*, e)); \
    if(r) return true; \
    } \
    return true; \
  }

#endif
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 28.5.2009, 13:29
Сообщение #72


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

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




Репутация:   29  


Цитата(SABROG @ 28.5.2009, 12:20) *
Написал в wiki как смог, если есть желающие добавить или поправить - милости прошу.
Хорошая статья получилась. Не зря мучились почти три дня.

Еще бы ссылочку на эту дему добавить, если вдруг кто то захочет задать вопросс.

Сообщение отредактировал igor_bogomolov - 28.5.2009, 13:32
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 28.5.2009, 13:51
Сообщение #73


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

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

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




Репутация:   94  


SABROG, а что если теперь запустить ссылкой в qt-apps?
(через гугл переводчик)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 28.5.2009, 13:57
Сообщение #74


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


Цитата(Litkevich Yuriy @ 28.5.2009, 14:51) *
SABROG, а что если теперь запустить ссылкой в qt-apps?
(через гугл переводчик)

Поподробней отсюда, я ничего не понял :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 28.5.2009, 14:21
Сообщение #75


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

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

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




Репутация:   94  


ну на qt-apps, кто-то утверждал, что задачка не для Qt. Если я ничего не перепутал.
Дак вот дать им ссылку на нашу вики, типа вот как всё это можно сделать.
Дать ссылку на оригинал и на гугловский перевод, чтоб по аглицки могли почитать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 28.5.2009, 14:24
Сообщение #76


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

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




Репутация:   29  


How to sendEvent QPaintEvent ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 28.5.2009, 14:38
Сообщение #77


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


Цитата(igor_bogomolov @ 28.5.2009, 15:24) *


:) не совсем эта тема, она просто стала продолжением этой: http://www.qtcentre.org/forum/f-qt-program...ilds-21153.html

Щас обновлю все-таки последнюю тему, добавлю туда ссылочку.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 28.5.2009, 14:39
Сообщение #78


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

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

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




Репутация:   94  


Ах, да qtcentre.org, конечно, а не qt-apps
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 28.5.2009, 16:44
Сообщение #79


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


Вопрос. А ведь QRubberBand тоже рисуется поверх виджетов?
---
Вопрос отпал, это тот самый прослойчатый виджет:

    setAttribute(Qt::WA_TransparentForMouseEvents);
#ifndef Q_WS_WIN
    setAttribute(Qt::WA_NoSystemBackground);
#endif //Q_WS_WIN
    setAttribute(Qt::WA_WState_ExplicitShowHide);

---
Отличие PostEventFilter'а от нашего метода в том, что там переопределяется метод event() вместо installEventFilter'a, ну и соответственно вызывается сначала оригинальный обработчик, а после него вызывается метод postEventFilter. Хуже он тем, что работает только на одном виджете и соответственно каждый такой виджет надо наследовать.

Сообщение отредактировал SABROG - 28.5.2009, 16:56
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 28.5.2009, 18:17
Сообщение #80


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

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




Репутация:   29  


Цитата(SABROG @ 28.5.2009, 17:44) *
Хуже он тем, что работает только на одном виджете и соответственно каждый такой виджет надо наследовать.
Такой метод нам явно не подходит. Наш метод однозначно лучше. Твою статью можно смело в QQ размещать :D


--------------------------------------------------------------------------------
Наконец то научился работать с гиф анимацией через Qt, не воспроизводя ее в QLabel.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

11 страниц V  « < 6 7 8 9 10 > » 
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


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




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