Russian Qt Forum

Qt => Qt Embedded => Тема начата: mad_celt от Сентября 09, 2009, 15:35



Название: Главное окно после максимайза на кпк
Отправлено: mad_celt от Сентября 09, 2009, 15:35
Доброго времени суток!
Такой у меня вопрос: Главное окно приложения наследует QMainWindow, в качестве центрального виджета стоит обычный QTreeWidget, кроме того наличествует статус бар. После минимайза приложения (нажатия на "крестик") и последующего его перезапуска не отрисовывается ни центральный виджет, ни статус бар. Вместо них нарисовано то, что было на экране до запуска, заменяются лишь тайтл окошка и меню.

Я не очень грамотен в Qt, к сожалению, поэтому прошу совета - как это исправить? Подскажите, пожалуйста!


Название: Re: Главное окно после максимайза на кпк
Отправлено: Oreon от Ноября 02, 2009, 18:37
Нашел ответ (была аналогичная проблема на CE 5.0) -  http://lists.trolltech.com/pipermail/qt-wince-interest/attachments/20090907/30e7e315/attachment-0001.txt
Нужно подправить src/gui/kernel/qapplication_win.cpp
На версии Embedded 4.5.3 за строкой 2087:  if (widget->windowState() & Qt::WindowMinimized) {
нужно добавить  widget->dataPtr()->window_state &= ~Qt::WindowMinimized;

Получилось:
#ifdef Q_OS_WINCE
                {
                    if (widget->windowState() & Qt::WindowMinimized) {
                        widget->dataPtr()->window_state &= ~Qt::WindowMinimized;  // добавление
                        if (widget->windowState() & Qt::WindowMaximized)
                            widget->showMaximized();
                        else
                            widget->show();
                    }
#else
                if (!(widget->windowState() & Qt::WindowMinimized)) {
#endif

После перекомпиляции библиотеки все заработало корректно. Заменил файлы QtGui4.dll и QtCore4.dll