crossplatform.ru

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

11 страниц V  « < 8 9 10 11 >  
Ответить в данную темуНачать новую тему
> QPaintEvent, installEventFilter, QPainter, Overpainting
ViGOur
  опции профиля:
сообщение 29.5.2009, 23:31
Сообщение #91


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

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

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




Репутация:   40  


Цитата(igor_bogomolov @ 29.5.2009, 23:31) *
Поэтому я и предлогал переименовать.
Вроде как ты автор того исходника, так что дерзай, если есть идеи. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 30.5.2009, 11:32
Сообщение #92


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

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

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




Репутация:   94  


Цитата(kwisp @ 30.5.2009, 14:42) *
может вообще не стоит русский аналог искать а писать просто по русски оверрисование.
стОит. Надо подумать, здесь
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 28.10.2009, 23:36
Сообщение #93


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

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

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




Репутация:   34  


Не должно muzhik'у быть одному, поэтому я склепал ему бабу.



Решил попробовать схожий метод перехвата эвентов, но уже в глобальном виде - через переопределение QApplication::notify(). Принцип почти такой же за исключением того, что здесь не нужно использовать installEventFilter и рекурсию по детям.

bool MyApplication::notify(QObject *receiver, QEvent *event)
{
    if (QEvent::Paint == event->type() && m_overWidget) {
        bool ret = QApplication::notify(receiver, event);
        QWidget *widget = qobject_cast<QWidget *>(receiver);
        if (!m_overWidget->isAncestorOf(widget))
            return ret;
        QPainter painter(widget);

        QWidget *parent = widget;

        while(parent && parent->parentWidget() && (parent->parentWidget() != m_overWidget))
            parent = parent->parentWidget();

        if (parent != m_overWidget) {
            QPoint point = widget->mapTo(parent, parent->pos());
            QRect rect = widget->rect().translated(point);

            painter.setWindow(rect);
        }

        painter.drawPixmap(m_pix.rect(), m_pix);
        return ret;
    }
    return QApplication::notify(receiver, event);
}


В примере используется .mng анимация с классом QMovie. Есть баги, требующие доработки.

Исходники.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 30.10.2009, 23:31
Сообщение #94


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

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

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




Репутация:   34  


Это тролли так шутят или они действительно планируют все-таки реализовать подобный функционал в Qt 5.0.0?

http://bugreports.qt.nokia.com/browse/QTBUG-1615
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 30.10.2009, 23:36
Сообщение #95


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

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

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




Репутация:   94  


Ну, а почему бы в 5-ке этому не появится (пострисованию)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 30.10.2009, 23:46
Сообщение #96


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

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

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




Репутация:   34  


Цитата(Litkevich Yuriy @ 31.10.2009, 0:36) *
Ну, а почему бы в 5-ке этому не появится (пострисованию)


Ну если Qt 4.3.0 вышла в 2007 году, то 5.0.0 выйдет наверно, когда мы будем уже дедушками.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 30.10.2009, 23:50
Сообщение #97


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

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


Цитата(SABROG @ 30.10.2009, 23:46) *
Ну если Qt 4.3.0 вышла в 2007 году, то 5.0.0 выйдет наверно, когда мы будем уже дедушками.

IMHO, сейчас релизы чаще выходят. Думаю год два.... :)

Сообщение отредактировал BRE - 31.10.2009, 0:04
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 31.10.2009, 1:23
Сообщение #98


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

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

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




Репутация:   94  


Цитата(BRE @ 31.10.2009, 2:50) *
Думаю год два....
да быстрее и не надо, а то там каки будут.
Да и судя по странице проекта Qt в разделе версии целая куча всего, что отложено на "после 5-ки"
Цитата
4.5.2 1
4.5.3 11
4.5.4 (Next Patch Release) 44
4.6.0 (Next Minor Release) 424
4.6.1 (Next Patch Release) 1
4.6.x 67
4.7.x 10
5.0.0 (Next Major Release) 80
Some future release

Стало быть 5-ки слишком долго ждать не прийдётся. Одно интересно ВинХП похоронят в 5-ке или нет
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 31.10.2009, 13:49
Сообщение #99


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

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

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




Репутация:   94  


Тему разделил: Ализе́ Жакоте
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 6.11.2009, 4:43
Сообщение #100


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

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

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




Репутация:   94  


Может будет интересно: тык
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 28.11.2024, 19:10