Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Pupil от Апрель 18, 2012, 10:49



Название: Не срабатывание переопределённого PaintEvent при "восстановлении" окна
Отправлено: Pupil от Апрель 18, 2012, 10:49
Здравствуйте!

В примере есть:
1. Главное окно.
2. QDialog, вызываемый по слоту из главного окна
3. в QDialoge присутствует widget, на котором переопределённый PaintEvent выводит изображение.
4. При сворачивании примера - нажатии на заголовок редактора кода - пример уходит заподлицо (сворачивается). При восстановлении видимости окон примера (нажатие на свёрнутое окно внизу рабочего стола) - пример восстанавливается, отображается диалог, а widget диалога - пуст, хотя должен содержать картинку. Картинка появляется на виджете - если провести курсор мыши в области виджета диалога.
Как виджету диалога можно "принудительно" объяснить, что в случае восстановления видимости диалога, виджет должен отобразить картинку, а не ждать принудительных действий?
 


Название: Re: Не срабатывание переопределённого PaintEvent при "восстановлении" окна
Отправлено: _OLEGator_ от Апрель 18, 2012, 13:55
Показывай как рисуешь.


Название: Re: Не срабатывание переопределённого PaintEvent при "восстановлении" окна
Отправлено: Igors от Апрель 18, 2012, 14:02
Как виджету диалога можно "принудительно" объяснить, что в случае восстановления видимости диалога, виджет должен отобразить картинку, а не ждать принудительных действий?
Для начала попробовать repaint


Название: Re: Не срабатывание переопределённого PaintEvent при "восстановлении" окна
Отправлено: Bepec от Апрель 18, 2012, 14:05
Для начала посмотреть его код. Repaint то вызывается автоматом при появлении окна. Значит проблема в коде...


Название: Re: Не срабатывание переопределённого PaintEvent при "восстановлении" окна
Отправлено: Igors от Апрель 18, 2012, 14:18
Для начала посмотреть его код. Repaint то вызывается автоматом при появлении окна. Значит проблема в коде...
Несокрушимая логика :) Но все-таки автоматом repaint не вызывается


Название: Re: Не срабатывание переопределённого PaintEvent при "восстановлении" окна
Отправлено: Pupil от Апрель 18, 2012, 14:30
Код заголовок конструктора "иерархия":

Код:
PaintWin::PaintWin(QWidget *parent) :
    QDialog(parent)
    m_ui(new Ui::PaintWin)

Код переопределения QPaintEvent (PaintWin.h):

Код:
protected:
     void paintEvent(QPaintEvent *e);

Код тела paintEvent (PaintWin.cpp)
Код:
void PaintWin::paintEvent(QPaintEvent *e)
{
qDebug() << "Рисуем";
}

Уважаемые коллеги, поясню суть вопроса: Не важно! "Как он рисует", а важно то, что после восстановления на экране из свёрнутого состояния примера- появляется главное окно примера, спереди окно PaintWin, то при этом в тело события paintEvent просто не заходит. Вот в чём вопрос.


Название: Re: Не срабатывание переопределённого PaintEvent при "восстановлении" окна
Отправлено: Bepec от Апрель 18, 2012, 14:42
Создал проект, наследовался и от виджета, и от мейна, и от диалога => при разворачивании и иных действиях слот вызывается автоматомсс...

Выложи проект в архиве. Если до 17.00 по MSK, то я успею посмотреть.


Название: Re: Не срабатывание переопределённого PaintEvent при "восстановлении" окна
Отправлено: Pupil от Апрель 18, 2012, 14:55
Вопрос решил. Благодарю всех! Вызывает респект и уважение: "Выложи пример. Если до 17.00, то я посмотрю". Спасибо!


Название: Re: Не срабатывание переопределённого PaintEvent при "восстановлении" окна
Отправлено: Bepec от Апрель 18, 2012, 15:13
Измени название темы на %название темы%[РЕШЕНО].


Название: Re: Не срабатывание переопределённого PaintEvent при "восстановлении" окна
Отправлено: iroln от Апрель 19, 2012, 14:46
А в чём проблема то была в итоге? :)