(編集を参照)
gnomeでQT/c++アプリケーションを開発しています。
アプリケーションのメインウィンドウとQListBoxの子ウィンドウ。
Altキーを押しながらアプリケーションから離れると、これらのウィンドウは両方とも別々のメインウィンドウとして表示されます。
私(または後でユーザー)がalt-tabを使用したときに1つのウィンドウだけが表示されるようにするにはどうすればよいですか?
この動作は、1つのメインウィンドウがサブウィンドウをクリップしないために発生すると推測しています。サブウィンドウはメインウィンドウの境界を拡張します。Gnomeは、他の多くのアプリケーションでもalt-tabの動作が悪く、メインウィンドウとは別にモーダルダイアログボックスが表示されます。しかし、私のアプリの場合、これは本当に迷惑です。
既存の両方の窓を含む巨大な透明な窓を作ることができると思います。しかし、「クリーンな」解決策を見つける方がよいでしょう。
(最も論理的な推測は、それがウィンドウフラグと関係があるということです。私は考えられるフラグのすべての合理的な組み合わせを試しました。ウィンドウタイプはここで説明されています)
編集:アプリのメインウィンドウ(QMainWindowではない)としてQWidgetがあります。QListViewはQWidgetオブジェクトに含まれており、メインウィンドウにポイントを渡すことで作成されます。Qt ::Tool|でスタイリングされています Qt::FramelessWindowHint。
Edit2: Qt :: X11BypassWindowManagerHintスタイルは、alt-tabリストからウィンドウを削除するために機能します。問題は、ウィンドウが「管理されていない」状態になり、他のウィンドウをカバーすることです。集中力を失ったときはいつでも手作業で隠れることができました。より良い解決策を今すぐ賞賛してください。