2012-03-19 64 views
0

Qtでドッキング可能なウィンドウを作成しようとしています(画面の端に4pxの幅があり、いつも上にあり、ホバーするとスライドします)。私はWindowFlag BypassX11WindowManagerを使う必要があります(タスクバーのヒントを隠すため、ウィンドウマネージャからの移動/サイズ変更などを無効にするため)。 Qtでウィンドウを非アクティブにする方法

Qt::FramelessWindowHint 
Qt::CustomizeWindowHint 
Qt::X11BypassWindowManagerHint 
Qt::WindowStaysOnTopHint 

私は私のドックが有効にする必要が

が、私はactivateWindow()メソッドを使用します。私は、これらのフラグを使用します。しかし、私はそれをどのように非アクティブにするのか分かりません。

強制的にウィンドウを非アクティブにする方法はありますか?今度は、別のウィンドウをクリックしてからドックを公開する前にアクティブだったウィンドウに戻るだけで、これを行うことができます。

答えて

0

->hide()を使用して、特定のポイントに表示したくない場合は、単に非表示にすることができます。

QDockWidget/classもありますが、それはあなたを助けるかもしれません。あなたがそれを使用しているかどうかは、上記のものからは不明です。

+0

私はQDockWidgetクラスを知っていますが、これは何か違うようです。ウィンドウから固定解除できるパネルだけです。 QDockWidgetはウィンドウを作成せずに単独で存在するとは思いませんが、間違っていますか?正直言って、私はそれを使ってみたことはありません。それを隠すことは方法ではありません。画面の端に移動しただけで、常に見えるようにして、ドックの端だけが見えるようにしなければなりません。また、私はこのドックを小さなアプリケーションウィンドウでなくメインのアプリケーションウィンドウにする必要があります。 – Mitu

+0

正直言って、私はドックウィジェットを使っていません!あなたの問題は本当に「ドックの端だけが見える」必要があるとは言いませんでした。それをまだ見えるようにするためにできることの1つは、内部コンテンツ全体をvboxなどに入れてからvboxを非表示にし、ウィンドウを「ほぼ空の」バイブックスのサイズにリサイズすることです。 –

+0

私はQDockWidgetを試してみました。スタンドアローンの場合、他のウィンドウとして動作します。 TaskBarヒント。おそらくWindowsでは隠されていますが、WindowsではWindowFlag Qt :: Toolがうまく機能します。 – Mitu

関連する問題