问题标签 [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.
c++ - Qt - 捕捉通常由窗口管理器处理的事件
我不太清楚如何简洁地表达这个问题,所以如果有类似的问题,请指出正确的方向并关闭这个问题。
我目前正在构建一个 CAD 应用程序,用户主要通过鼠标和三个键盘修饰符(alt、shift、ctrl)在 3D 视口中进行交互。Shift 和 control 修改当前选择的工具选项,alt 操作相机 - 就像任何其他 3D CAD 应用程序一样。
但是,我目前正在使用 Gnome 桌面进行开发,它的窗口管理器 (AFAIK) 会捕获任何 Alt-RightButton 鼠标拖动事件并将它们解释为窗口拖动命令 - 即使不按住标题栏并且无论当前突出显示的小部件如何。
这对我来说是一场灾难,因为相机键盘控制在我的目标行业中非常标准化。那么有没有人知道一种方法来覆盖这种行为,最好是在 Qt 中,并且最好将它集中在一个特定的小部件类中的一个场景中?
谢谢你,
卡姆
java - 带有窗口管理的 MDI 应用程序
如何使用窗口管理选项开发 MDI 应用程序,其中一个子项只能打开一次,如果用户再次单击以打开同一个子窗体应用程序应该显示同一个子窗体的实例。
我正在使用 JFrame 和 JInternalFrame。
如何检查我的子表单的实例是否已经创建并打开。
macos - Mac OSX 上滚动事件的系统范围识别并将焦点设置到不同的窗口
我正在可可应用程序中注册全局鼠标滚轮事件。我的目标是让某种后台应用程序能够在用户在其窗口中滚动时聚焦另一个应用程序的窗口。如果可能使用 Objective-C 和 Cocoa,如果我想这样做,我需要走哪条路?
我的事件注册代码如下所示:
这行得通,但是在事件中捕获的数据(如窗口或 windowid)我似乎无法操作 - 而且窗口 id 似乎甚至不是正确的,因为我可以获得一个列表窗口并在那里获得不同的 id - 只是屏幕位置似乎是准确的。所以三个问题来解决这个谜题:
- 如何在屏幕上的某个位置获取窗口或窗口 ID?
- 如果我只能得到一个窗口 id,我怎样才能找到合适的应用程序或窗口对象来操作?
- 我想我需要可访问性 API 来操作窗口并赋予它焦点。这是如何运作的?
也许这些都是简单的任务,但我以前从未编写过 Mac-Cocoa 应用程序。在建议阅读文档之前,您应该知道我已经扫描了所有文档,并且我通过示例学习比阅读书籍更好:-)
编辑:我刚刚发现我可能会使用 ProcessManager 将应用程序带到前面。如果您认为这是一个可能的解决方案,我可以在屏幕上的某个点获取窗口的进程 ID 吗?
EDIT2:我不想使用 Carbon API。
windows - Stopping another program from taking focus
I need to run a lengthy set of unit tests quite often each day, and as part of the tests, some windows pop up and are subsequently closed by the test script. Ideally, I'd like to continue working while the tests are running, so I'd need to stop the testing software from taking focus or opening a window in front of what I'm currently working on.
Is there a way to stop descendants of a certain process from taking focus when opening a window and from opening a window at the top of the z-order, or can I redirect the windows to another screen where they don't bother me?
matlab - 抑制 Matlab 窗口焦点窃取
有没有办法告诉 Matlab不要在图形命令(如figure
和plot
. 这将大大提高我的工作效率,因为我经常希望在数据(重新)处理期间继续进行代码开发。
sdl - 使用 SDL 处理最大化的窗口
我们最近将Bitfighter从 GLUT 移植到 SDL。这样做有很多好处,但也有一些缺点,尤其是在窗口管理领域。
Bitfighter 在固定纵横比窗口(800x600 像素)中运行。用户可以将他们的窗口设置为任何他们想要的大小,但我们会捕获调整大小事件并对请求的大小进行调整,以确保窗口保持正确的比例(使用 SDL_SetVideoMode)。
(以下问题适用于Windows,但尚未在其他平台上进行测试。我下面描述的内容专门针对Windows,尽管我正在寻找与平台无关的解决方案。)
通常,这很有效,除非用户通过双击标题栏或使用最大化按钮来最大化他们的窗口。在这种情况下,窗口大小调整事件被调用,窗口大小接近屏幕大小(减去一些用于窗口装饰的像素)。不幸的是,当窗口最大化时, SDL_SetVideoMode 不起作用(不像 GLUT 能够调整最大化窗口的大小)。此外,对 SDL_GetVideoInfo 的后续调用会报告我们请求的大小,而不是窗口的实际当前大小,因此很难判断尝试调整大小是否有效。
我正在寻找一种独立于平台的方式来执行以下任何操作(按偏好降序排列):
- 最大化后调整窗口大小
- 检测窗口何时最大化,以便知道我无法调整它的大小,我至少可以将视频调整为居中
- 防止窗口最大化(阻止双击窗口标题栏、使用最大化按钮以及将窗口拖到屏幕顶部)
Bitfighter 是用 C++ 编写的,我们使用的是最新的 SDL 官方版本。
python - 用 Python 编写平铺窗口管理器
我已经使用 Awesome Tiling 窗口管理器超过 6 个月了,对此我感到非常满意。
我想编写自己的 Tiling 窗口管理器作为周末项目和 hackfun。我注意到 Xmonad 和 dwm 非常小。我知道Qtile是一个 python 窗口管理器。
我不知道从哪里开始。我应该阅读并理解任何 Xorg 手册/api 吗?是否有任何用于窗口管理的 Python 库?请建议如何继续编写平铺窗口管理器。
如果您能分享任何类似的编写窗口管理器的经验,那就太好了。
python - 如何使用 pygtk 获取 gnome2 桌面上所有窗口的列表?
我对一些 gtk 和 gnome 概念有点困惑。我试图在我的 gnome2 桌面上获取非最小化窗口的列表,但是在阅读了 pygtk 文档并检查了结果之后,我无法理解结果。
下面的两个片段似乎都不起作用。
首先我试过这个..
那么这个
如控制台输出所示,第二个选项返回两个窗口。但我一直无法弄清楚它们是什么。他们都没有孩子,无论我的桌面上有多少个窗口,我总是得到这两个窗口。
任何人都可以解释典型的基于 gtk 的桌面环境的对象层次结构吗?我不明白为什么上面的代码不起作用。
请不要发布资源到 wnck、xlib、qt 等的替代解决方案。我更感兴趣的是了解我做错了什么,而不是获得诸如检查其他库之类的建议。
c++ - 在 QT 中管理子窗口
我正在尝试围绕我的程序编写一个界面(使用qt)。基本上我有一个主窗口,然后在某些时候它应该“要求用户进行交互”。- 我为此使用了一个对话框。
现在,当阅读对话窗口时,我在某处读到对话窗口应该总是有一个父窗口(我猜是主窗口?)。现在我发现在我的项目中实现这个很麻烦 - 因为我似乎必须更改我不想更改的代码。
基本上主程序曾经是一个命令行界面。对于用户交互,该程序将只创建一个处理显示和用户交互的类。在我从该类派生的 GUI 版本中,派生类只是包装了正确的对话框窗口。
现在的麻烦是在命令行界面中没有谈论“windows”甚至“qt”。- 主干应用程序应该对 qt 一无所知。沟通方式很简单:
现在的问题是:如何通过 BACKBONE(对 qt 一无所知)获取 MAIN_WINDOW 指针到 DIALOG?这是我必须为 MAIN_WINDOW 使用单例/全局变量的情况吗?我希望有一个更好的范例?
java - 如何使用 Java 在屏幕上移动 Windows 窗口?
我一直在考虑用 GUI 制作一个窗口管理器,可能是在 Java 中。但是,我正在努力找出移动不属于我的程序的窗口的最佳方法。
到目前为止,我似乎应该使用 JNI 来与 Windows API 交互,但我还没有找到任何有用的示例。
有谁知道如何做到这一点?
谢谢!
PS。如果有更好的语言可以做到这一点,我不一定与 Java 相关。