問題タブ [window-management]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
686 参照

c++ - Qt-ウィンドウマネージャーによって通常処理されるイベントをキャッチします

質問を簡潔に表現する方法がよくわからないので、同様の質問がある場合は、正しい方向に向けて、これを閉じてください。

私は現在CADアプリを構築しています。ユーザーは、主にマウスと3つのキーボード修飾子(alt、shift、ctrl)を使用して3Dビューポート内で対話します。ShiftキーとControlキーを押すと、現在選択されているツールオプションが変更され、altは他の3DCADアプリと同じようにカメラを操作します。

ただし、現在Gnomeデスクトップを使用して開発しており、ウィンドウマネージャー(AFAIK)は、Alt-RightButtonマウスドラッグイベントをキャッチし、タイトルバーを保持していない場合や、現在強調表示されているウィジェットに関係なく、ウィンドウドラッグコマンドとして解釈します。

カメラのキーボードコントロールは私の対象業界でかなり標準化されているので、これは私にとって災いです。では、できればQt内からこの動作をオーバーライドし、できれば1つの特定のウィジェットクラスの1つのシナリオに焦点を合わせる方法を知っている人はいますか?

ありがとう、
カム

0 投票する
1 に答える
509 参照

java - ウィンドウ管理を備えた MDI アプリケーション

ユーザーがもう一度クリックして同じ子フォームアプリケーションを開くと、同じ子フォームのインスタンスを表示する必要がある場合に、1 つの子を 1 回だけ開くウィンドウ管理オプションを使用して MDI アプリケーションを開発するにはどうすればよいですか。

JFrame と JInternalFrame を使用しています。

子フォームのインスタンスが既に作成されて開かれていることを確認するにはどうすればよいですか。

0 投票する
0 に答える
496 参照

macos - Mac OSXでのスクロールイベントのシステム全体の認識と、フォーカスを別のウィンドウに設定する

ココアアプリケーションでグローバルマウスホイールイベントに登録しています。私の目標は、ユーザーがウィンドウをスクロールしたときに、別のアプリケーションのウィンドウにフォーカスできるようにするための、ある種のバックグラウンドアプリケーションを用意することです。Objective-CとCocoaで可能であれば、これを実行したい場合、どのルートに進む必要がありますか?

イベント登録の私のコードは次のようになります。

これは機能しますが、イベントでキャプチャされたデータ(windowやwindowidなど)を操作できないようです-リストを取得できるため、windowidも正しいものではないようですウィンドウの数とそこに別のIDを取得します-画面の位置だけが正確であるようです。したがって、この謎を解決するための3つの質問:

  1. 画面の特定の場所でウィンドウまたはウィンドウIDを取得するにはどうすればよいですか?
  2. ウィンドウIDしか取得できない場合、操作する適切なアプリケーションまたはウィンドウオブジェクトを見つけるにはどうすればよいですか?
  3. ウィンドウを操作してフォーカスを与えるには、アクセシビリティAPIが必要だと思います。それはどのように機能しますか?

たぶんこれらは単純な作業ですが、私はこれまでMac-Cocoaアプリケーションを作成したことがありません。読むべきドキュメントを提案する前に、私がすでにすべてのドキュメントをスキャンしたこと、そして本を読むよりも例によって学ぶ方がよいことを知っておく必要があります:-)

編集:ProcessManagerを使用してアプリケーションを前面に表示できることがわかりました。これが可能な解決策であると思われる場合、画面上の特定のポイントでウィンドウのプロセスIDを取得するにはどうすればよいですか?

EDIT2:CarbonAPIを使用したくありません。

0 投票する
1 に答える
214 参照

windows - 別のプログラムがフォーカスを取得するのを止める

毎日かなり頻繁に一連の長い単体テストを実行する必要があります。テストの一環として、いくつかのウィンドウがポップアップし、その後テスト スクリプトによって閉じられます。理想的には、テストの実行中に作業を続けたいので、テスト ソフトウェアがフォーカスを取得したり、現在作業中のウィンドウの前にウィンドウが開いたりするのを停止する必要があります。

ウィンドウを開くときに特定のプロセスの子孫がフォーカスを取得したり、z オーダーの一番上にあるウィンドウを開いたりするのを防ぐ方法はありますか? または、ウィンドウを気にしない別の画面にリダイレクトできますか?

0 投票する
2 に答える
11400 参照

matlab - Matlabウィンドウフォーカスの盗用を禁止する

およびなどのグラフィカルコマンドで(Emacsなどの)ウィンドウフォーカスを(外部エディターから)盗まないようにMatlabに指示する方法はありますか?これにより、データ(再)処理中にコード開発を継続したいことが多いため、生産性が大幅に向上します。figureplot

0 投票する
2 に答える
1360 参照

sdl - SDL を使用して最大化されたウィンドウを処理する

最近、Bitfighterを GLUT から SDL に移植しました。これには多くの利点がありましたが、特にウィンドウ管理の領域ではいくつかの欠点もありました。

Bitfighter は、固定アスペクト比のウィンドウ (800x600 ピクセル) で実行されます。ユーザーはウィンドウのサイズを自由に設定できますが、サイズ変更イベントをキャプチャし、要求されたサイズに調整して、ウィンドウが正しい比率を維持するようにします (SDL_SetVideoMode を使用)。

(次の問題は Windows に適用されますが、他のプラットフォームではまだテストされていません。以下で説明する内容は、特に Windows に関するものですが、プラットフォームに依存しない解決策を探しています。)

ユーザーがタイトル バーをダブルクリックするか、最大化ボタンを使用してウィンドウを最大化する場合を除いて、通常、これはうまく機能します。その場合、ウィンドウのサイズ変更イベントが呼び出され、ウィンドウ サイズは画面サイズ (ウィンドウの装飾用にいくつかのピクセルを差し引いたもの) に近似します。残念ながら、ウィンドウが最大化されている場合、SDL_SetVideoMode は効果がありません (最大化されたウィンドウのサイズを変更できる GLUT とは異なります)。さらに、その後の SDL_GetVideoInfo の呼び出しは、現在のウィンドウの実際のサイズではなく、要求したサイズを報告するため、試行されたサイズ変更が機能したかどうかを判断するのは困難です。

次のいずれかを実行するためのプラットフォームに依存しない方法を探しています (好みの降順):

  1. 最大化後にウィンドウのサイズを変更する
  2. ウィンドウが最大化されたことを検出して、ウィンドウのサイズを変更できないことを知っているので、少なくともビデオを中央に配置するように調整できます
  3. ウィンドウが最大化されないようにする (ウィンドウのタイトル バーのダブルクリック、最大化ボタンの使用、およびウィンドウを画面上部にドラッグすることをブロックする)

Bitfighter は C++ で記述されており、SDL の最新の公式リリースを使用しています。

0 投票する
1 に答える
3743 参照

python - Python でタイリング ウィンドウ マネージャーを作成する

私は、Awesome Tiling ウィンドウ マネージャーを 6 か月以上使用していますが、これには非常に満足しています。

週末のプロジェクトとして、またハックファンのために、独自のタイリング ウィンドウ マネージャーを作成したいと考えています。Xmonad と dwm が非常に小さいことに気付きました。PythonウィンドウマネージャーであるQtileを認識しています。

どこから始めればよいかわかりません。Xorg のマニュアル/API を読んで理解する必要がありますか? ウィンドウ管理用の Python ライブラリはありますか? タイリング ウィンドウ マネージャの作成方法を教えてください。

ウィンドウ マネージャーを作成する際の同様の経験を共有できれば幸いです。

0 投票する
2 に答える
3095 参照

python - pygtkを使用してgnome2デスクトップ上のすべてのウィンドウのリストを取得するにはどうすればよいですか?

私はいくつかのgtkとgnomeの概念と少し混乱しています。gnome2デスクトップで最小化されていないウィンドウのリストを取得しようとしていますが、pygtkのドキュメントを読んで結果を調べた後、結果を理解できません。

以下の2つのスニペットはどちらも機能していないようです。

最初にこれを試しました。

その後、これ

コンソール出力に見られるように、2番目のオプションは2つのウィンドウを返します。しかし、私はそれらが何であるかを理解することができませんでした。それらのどれにも子がなく、デスクトップにあるウィンドウの数に関係なく、常にこれらの2つのウィンドウを取得します。

誰かが典型的なgtkベースのデスクトップ環境のオブジェクトの階層を説明できますか?上記のコードが機能しない理由がわかりません。

wnck、xlib、qtなどにリソースを提供する代替ソリューションの投稿は控えてください。他のライブラリをチェックするなどのアドバイスを得るよりも、自分が間違っていることを理解することに関心があります。

0 投票する
1 に答える
717 参照

c++ - QT でのサブウィンドウの管理

プログラムの周りにインターフェイスを作成しようとしています (qt を使用)。基本的にはメイン ウィンドウがあり、特定の時点で「ユーザーに対話を求める」必要があります。- これにはダイアログを使用しています。

ダイアログウィンドウについて読んでいると、ダイアログウィンドウには常に親ウィンドウ(メインウィンドウだと思いますか?)が必要であるとどこかで読みました。今、私は自分のプロジェクトにこれを実装するのが面倒だと思っています-変更したくないコードを変更する必要があるようです。

基本的に、メイン プログラムはコマンド ライン インターフェイスでした。ユーザーとの対話の場合、プログラムは表示とユーザーの対話を処理するクラスを作成するだけです。GUI バージョンでは、そのクラスから派生し、派生クラスは正しいダイアログ ウィンドウをラップするだけです。

ここでの問題は、コマンド ライン インターフェースで「windows」や「qt」についてさえ言及されていないことです。- バックボーン アプリケーションは、qt について何も知らない必要があります。コミュニケーションは次のようなものです。

ここでの問題は、BACKBONE (qt について何も知らない) を介して DIALOG に MAIN_WINDOW ポインタを取得するにはどうすればよいかということです。これは、MAIN_WINDOW にシングルトン/グローバル変数を使用する必要がある場合ですか? より良いパラダイムがあることを願っていますか?

0 投票する
1 に答える
2591 参照

java - Java を使用して Windows ウィンドウを画面上で移動する方法は?

おそらくJavaで、GUIを備えたウィンドウマネージャーを作成することを考えています。ただし、自分のプログラムが所有していないウィンドウを移動する最善の方法を見つけるのに苦労しています。

これまでのところ、JNI を使用して Windows API とやり取りする必要があるように思われますが、役立つ例は見つかりませんでした。

誰もこれを行う方法を知っていますか?

ありがとう!

PS。これを行うためのより良い言語があれば、私は必ずしも Java に縛られているわけではありません。