Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Qt::WindowStaysOnTopHint is not working



  • Hello everyone,

    I need to create a file dialog displayed on top. At first I tried with QFileDialog::getExistingDirectory but I didn't succeed so I changed to:

    @
    QFileDialog dialog(0, Qt::WindowStaysOnTopHint);
    dialog.setOptions(QFileDialog::ShowDirsOnly);
    dialog.setFileMode(QFileDialog::Directory);
    dialog.setDirectory(QDir::homePath());

    if(dialog.exec())
    folderPath = dialog.selectedFiles();@

    The first time the dialog is displayed on bottom but the following times is displayed on top.

    Could someone please explain me why this behaviour? It happens in Windows XP/7/8

    Thanks in advance.


  • Qt Champions 2017

    which platform did you try. Normally with above code, it should show on top always. What is the sequence in which this dialog is opened ? If it is X11, you may need to pass Qt::X11BypassWindowManagerHint as well.



  • Hi Dheerendra,

    The application is run in a Windows platform. The sequence is the following:

    • Object A of class 1 is created in main thread and moved to a secondary thread.
    • The previous object creates object B of class 2 and moves it into the main thread.
    • Object B creates the file dialog.


  • I´ve just realised that if I do @setOptions(QFileDialog::DontUseNativeDialog);@

    then the dialog is displayed on top.

    Does anyone know why is this happening?

    Thanks.


Log in to reply