Название: Замещение paintEvent(QPaintEvent *event) Отправлено: andi от Октябрь 15, 2007, 13:09 Здрасте всем.
Есть некоторая форма, на которой находится фрейм. В начальный момент времени он скрыт ( hide() ). При нажатии спец кнопки, он появляется (вызов show() ), а потом вызывается repaint(). В paintEvent() содержится код который на этом фрейме отображает пару pixmap. Проблема: При появлении frame-а он пустой. Хотя paintEvent() вызывается (вывожу отладочное сообщение). Картинка появляется только если я например, мышкой переведу фокус на другое приложение. Причем это приложение должно перерисовать хотя бы край окна моего приложения. Либо сдвинуть какое либо приложение. Складывается ощущение, как будто нужно дернуть какой-нидь "flush" для отображения изменений. У кого какие будут мысли? Название: Re: Замещение paintEvent(QPaintEvent *event) Отправлено: QCasper от Октябрь 15, 2007, 14:20 Покажите код paintEvent.
Название: Re: Замещение paintEvent(QPaintEvent *event) Отправлено: andi от Октябрь 16, 2007, 05:16 Код: void TestForm3::paintEvent(QPaintEvent *event) Название: Re: Замещение paintEvent(QPaintEvent *event) Отправлено: andi от Октябрь 16, 2007, 06:12 В процессе экспериментирования обнаружилась такое решение:
Код: connect(pb_show,SIGNAL( toggled ( bool)),this,SLOT(handlerShow(bool))); В таком виде при нажатии кнопки изображение появляется. Если убрать qApp->... то изображение только после переключения окон. Название: Re: Замещение paintEvent(QPaintEvent *event) Отправлено: Вячеслав от Октябрь 16, 2007, 09:25 После отработки цикла сообщений ;)
|