2016-11-08 1 views
0

Je développe une application de bac simple, qui doit être affichée sur toutes les fenêtres ouvertes, y compris les cas où une fenêtre ouverte en mode plein écran sur osx. J'utilise ces codes pour ouvrir ma fenêtre d'application sous toutes les autres fenêtres ouvertes.Comment afficher la fenêtre qt en haut de la fenêtre ouverte en plein écran sur osx?

//used flags 
    flags: Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint 

    //code for showing window 
    mainWindow.show() 
    mainWindow.raise() 
    mainWindow.requestActivate() 

mise à jour: SOLUTION

J'ai trouvé solution juste en réglant le drapeau correct Qt.Tool au lieu de Qt.WindowStaysOnTopHint. Donc si quelqu'un a eu le même problème, juste n'utilisez pas ces drapeaux à la fois.

+0

Et cela ne fonctionne pas? – GrecKo

+0

Non, cette méthode n'est utile que pour un seul bureau, mais lorsque la fenêtre est ouverte en plein écran sur osx, elle s'ouvre dans le nouveau bureau. Et la tâche est de montrer ma fenêtre sur chacun d'eux. –

Répondre

0

Utilisez

void QWidget::setWindowState(Qt::WindowStates windowState) 

et réglez "Qt::WindowFullScreen" pour le plein écran. Vous connaissez votre droit QMainWindow est dérivé de QWidget.

Vous pouvez donc utiliser la fonction ci-dessus.

Quelque chose comme ceci:

mainWindow->setWindowState(Qt::WindowFullScreen) 
+0

désolé mais ce code est de définir le mode plein écran de la fenêtre. Dans mon cas, je n'ai pas besoin de le faire en plein écran, mais j'ai besoin de montrer ma fenêtre updon ouverte en plein écran dans le nouveau bureau. –

+0

Hmm ... Probablement alors obtenir l'autre fenêtre .... Obtenez les positions du haut à gauche et en bas à droite. Et mis à la fenêtre actuelle avant le spectacle. – Naidu

+0

Utilisez quelque chose comme move ou restoregeometry – Naidu