понедельник, мая 28, 2012

QT. QMainWindow поверх других окон.

Казалось бы в чем проблема? Однако QMainWindow::activateWindow на win только задорно моргнет в трее, фактической активации окна не произойдет.
Использовать флаг Qt::WindowType::WindowStaysOnTopHint не всегда возможно - приложение не только будет поверх всего и всегда, но и перестанет "слушаться" сочетания WIN+D (свернуть всё).
Всегда можно получить handle окна и сделать все через win api, но можно и так:

  w.showMinimized();  
  w.setWindowState(Qt::WindowActive);  
  w.showNormal();  
  w.setFocus();