Russian Qt Forum

Qt => Общие вопросы => Тема начата: muaddib1981@mail.ru от Декабрь 01, 2008, 15:03



Название: Некорректное завершение
Отправлено: muaddib1981@mail.ru от Декабрь 01, 2008, 15:03
Visual Studio 2008 Express
Qt 4.4.3
Обнаружил следующий глюк:

Создаем с нуля новый проект. В нем создаем один единственный класс от QMainWindow.
Запускаем. Нажимаем крестик, все корректно завершается.

Пишем в конструкторе
Код:
this->setWindowFlags(Qt::SplashScreen);
или
this->setWindowFlags(Qt::Popup);

Нажимаем Alt-F4 приложение завершается, консолька остается и зависает.
Либо можно повесить кнопку и по кнопке делать this->close();, результат тот же!


Название: Re: Некорректное завершение
Отправлено: yoyo от Декабрь 01, 2008, 15:18
QMainWindow плохо работает без центрального виджета, т.е. setCentralWidget(someWidget) обязателен.


Название: Re: Некорректное завершение
Отправлено: muaddib1981@mail.ru от Декабрь 01, 2008, 15:29
можно и c центральным виджетом ситуация не меняется.


Название: Re: Некорректное завершение
Отправлено: Steven_Orko от Декабрь 02, 2008, 09:49

Пишем в конструкторе
Код:
this->setWindowFlags(Qt::SplashScreen);
или
this->setWindowFlags(Qt::Popup);
А не пробывал колесо сделать квадратным? Может оно все равно катиться будет?
Для чего в QMainWindow ставить флаги, которые присущи окнам с совершенно другой функциональностью???
Вот и получилось неадекватное поведение!!! Попробуй rootWindow поставить флаг StayOnTop, удивительный результат получишь...