Всем привет.
Есть задача - рисовать окно (наследник от QMainWindow) поверх остальных. Вроде бы ничего сложного.
Много примеров, в т.ч. и на этом форуме, но простейший казалось бы код не работает:
manager w(a.arguments(), 0, Qt::WindowStaysOnTopHint); //это и есть окно
w.show();
w.activateWindow();
Окно все равно перекрывается другими окнами.
Попробовал передавать флаг не через конструктор, а через w.setWindowFlags(w.windowFlags() | Qt::WindowStaysOnTopHint); - результат тот же.
После дня мытарств, гугления и т.д. дошел до того, что флаг работает, если виджету указать родителя, причем этот родитель должен быть видимым:
QMainWindow window;
window.setWindowFlags(window.windowFlags() | Qt::WindowStaysOnTopHint);
window.show();
window.activateWindow();
manager w(a.arguments(), &window, Qt::WindowStaysOnTopHint); //это и есть окно
w.show();
w.activateWindow();
Что это - кривые руки или баг? Поделитесь опытом. Версия Qt 4.6.2, система XP SP2 x32