2016-11-08 10 views
0

私は、単純なトレイアプリケーションを開発しています。これは、開いているすべてのウィンドウの上に表示する必要があります。たとえば、osxでフルスクリーンモードで開いたウィンドウもあります。osxのフルスクリーン上にqtウィンドウを表示するには?

私はこれらのコードを使用して、開いている他のすべてのウィンドウの下にアプリケーションウィンドウをポップアップしています。

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

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

更新:SOLUTION

私は正しいフラグQt.Toolの代わりQt.WindowStaysOnTopHintを設定することで、解決策を見つけました。 誰かが同じ問題を抱えている場合は、の両方で同時にこのフラグを使用しないでください。

+0

そして、それは動作しませんか? – GrecKo

+0

いいえ、このメソッドは単一のデスクトップのみに役立ちますが、ウィンドウがosxでフルスクリーンで開かれると、新しいデスクトップで開きます。そして、私の窓を全員に見せることです。 –

答えて

0

使用

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

とフルスクリーンのために "Qt::WindowFullScreen" に設定します。

QMainWindowQWidgetから派生しています

上記の機能を使用することができます。

このような何か:

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

申し訳ありませんが、このコードはウィンドウの全画面モードを設定します。私の場合、フルスクリーンにする必要はありません。その代わりに、新しいデスクトップにフルスクリーンで開いたウィンドウupdonウィンドウを表示する必要があります。 –

+0

うーん...おそらく別のウィンドウを取得します....左上と右下の位置を取得します。ショーの前に現在のウィンドウに設定します。 – Naidu

+0

移動や復元幾何学のようなものを使用する – Naidu

関連する問題