问题标签 [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 投票
8 回答
16067 浏览

c - 为 Linux 创建一个窗口管理器

我想创建一个简单的堆叠窗口管理器(中C)供私人使用,主要是为了学习和挑战自己。

我查看了twm的源代码,它的花里胡哨的东西相对较少,但它似乎非常低级,因为它不是基于小部件工具包。1使用 GTK+ 之类的工具包会更好吗?我担心其中的一些代码和库twm可能过于陈旧(编辑:不推荐),我希望窗口管理器使用相对现代的库。为了理解起见,我也对如何从头开始启动窗口管理器的建议感兴趣 - 没有很多用于此目的的教程。

更新:对于那些考虑类似项目的人:我最终使用了 Common Lisp 和CLX 库tinywm-lisp作为基础,出色的CLFSWMStumpwm提供了很大帮助。作为参考,我在 Freenode 上使用了CLX — Common LISP X InterfacePDF 警告) 。#xlib

0 投票
0 回答
220 浏览

opengl - 如何处理 X11 中的“switch from”和“switch to”事件?

我正在制作一个全屏 OpenGL 应用程序,我希望它在用户离开它时恢复原始桌面模式,并在用户切换到它时恢复模式。这看起来像“FocusIn”和“FocusOut”事件,但它们不适合这个。只要用户按下 Alt+Tab 并出现窗口选择器,窗口就会得到“FocusOut”(因为此时我的窗口正在失去焦点)。

0 投票
1 回答
249 浏览

x11 - 如何查找或记录打开顶级窗口的X11顶级窗口?

我正在考虑编写一个 X11 窗口管理器,它对 Windows 的作用类似于TabKit对 Firefox 中的选项卡所做的事情(在其默认的树视图模式下)。为此,我需要能够找出一个窗口是从哪个窗口打开的。有没有一种标准的方法来发现这一点?

(我从来没有在 X11 之上使用跨平台工具包进行过任何X11 编程,更不用说编写窗口管理器了。)

0 投票
3 回答
3114 浏览

delphi - 为图像创建一个特殊的视觉选择工具

我想创建一种特殊的选择,其中图像变暗,部分用户正在选择,显示真实图像。你可以看到一个例子:

例子

我找到了两种实现方法:

  1. 实现一个显示变暗图像的控件。当用户在此控件上拖动一个椭圆时,一个椭圆会将真实图像(未变暗的图像)复制到控件画布中。在这种情况下,当他/她尝试将椭圆调整为 SMALLER SIZE 时,首先椭圆的整个矩形区域变暗,然后在新的 Smaller Ellipse 中绘制真实图像。

  2. 与方法 1 相同,但我们不是在控件的画布上绘制,而是创建一个显示真实图像的新控件。在这种情况下,所有发送到新控件的消息都应该传递给父控件。因为如果用户尝试将椭圆调整为更小的尺寸,WM_MOVE 消息会发送到该控件,而不是父控件。

可以请有人告诉我实现这一点的正确方向。我认为方法 1 很难实现,因为它会导致很多闪烁。除非我实现一种仅通过 InvalidateRect 函数重新绘制更改部分的方法。

这是我实现的类 TScreenEmul 的代码,直到现在。它工作,但它有闪烁。

使用此类:

0 投票
1 回答
1024 浏览

xcode - MacRuby + Interface Builder:如何显示,然后关闭,然后再次显示窗口

我是 MacRuby 和 Cocoa 的完整 n00b,所以在回答时请记住这一点 - 我需要很多细节和解释。:)

我已经建立了一个简单的项目,其中有 2 个窗口,这两个窗口都是用 Interface Builder 构建的。第一个窗口是使用表格视图的简单帐户列表。它在表格下方有一个“+”按钮。当我单击 + 按钮时,我想显示一个“添加新帐户”窗口。

我还有一个AccountsController < NSWindowController和一个AddNewAccountController < NSWindowController类,设置为这些窗口的代表,连接了适当的按钮单击方法,以及引用所需窗口的插座。

当我单击“帐户”窗口中的“+”按钮时,我会触发以下代码:

这在我第一次单击 + 按钮时效果很好。一切都出现了,我可以输入我的数据并将其绑定到我的模型。但是,当我关闭添加新帐户表单时,事情开始变得糟糕。

如果我将添加新帐户窗口设置为关闭时释放,那么我第二次单击 + 按钮时,该窗口仍会弹出但它被冻结。我无法单击任何按钮、输入任何数据,甚至无法关闭表单。我认为这是因为表单的代码已经发布,所以没有消息循环处理表单......但我对此并不完全确定。

如果我将添加新帐户窗口设置为关闭时不释放,那么我第二次单击 + 按钮时,窗口显示正常并且可用 - 但它仍然包含我之前输入的所有数据......仍然绑定到我以前的 Account 类实例。

我究竟做错了什么?当我单击 Accounts 表单上的 + 按钮时,创建 Add New Account 表单的新实例、创建新 Account 模型、将该模型绑定到表单并显示表单的正确方法是什么?

...这一切都在 OSX 10.6.6、64 位和 XCode 3.2.4 上完成

0 投票
1 回答
752 浏览

objective-c - 如何在objective-c中模拟用户输入?

在 Windows 上,使用 c#,我能够捕获另一个窗口的“屏幕”,将其用于处理,然后将用户输入事件发送到该窗口。(由程序生成)。

我想对objective-c和Mac OS X做同样的事情。所以!任何资源,甚至我正在尝试做的事情的名称都会很棒。当我能想到的唯一方法来表达我的搜索太模棱两可时,试图找到这方面的信息是非常令人沮丧的。

谢谢!

编辑:作为一个具体的例子,我可能想为某个特定的游戏制作人工智能。在这种情况下,我需要能够向游戏发送鼠标和键盘事件。

0 投票
1 回答
179 浏览

winapi - 控制不属于您的进程的窗口是否被视为恶意软件活动?

我计划遵循此处提出的建议之一来控制窗口尺寸、隐藏/显示并将其带到与我的进程不同的进程所拥有的窗口的前面。

在 MS Windows(XP) 上使用来自不同进程的窗口句柄进行窗口操作

如何从 WinForms 应用程序控制新进程窗口的大小和位置?

您知道的任何恶意软件检测软件是否会将我的进程报告为恶意软件?

我的进程是否需要比我的进程和其他进程运行的最高权限更高的权限来控制其他进程窗口?

0 投票
1 回答
1136 浏览

python - 使用 Python 将活动窗口的大小调整为 Linux 中屏幕大小的一半?

这个问题是后续问题:通过编译的代码在 linux 中操纵窗口大小?

根据标题,我想将活动窗口的大小调整为屏幕大小的一半(在屏幕的左侧或右侧。我可以使用 bash 脚本执行此操作,如下所示(根据上一个问题的答案):

但是,这种方法在我的笔记本电脑上有明显但不严重的 0.25 秒延迟,我希望将其降低到 0.1 秒。如何在 python 中实现与上述 bash 脚本相同的效果?

0 投票
1 回答
945 浏览

vim - gVim - Ubuntu - 窗口不断调整大小

我在 Ubuntu 中使用 gVim。gVim 的窗口管理出了点问题——它一直在调整我的大小!...当我切换选项卡或拆分窗口或在拆分之间切换时,通常会发生这种情况。

任何帮助都会非常棒!

谢谢!

0 投票
5 回答
108290 浏览

python - Turtle graphics - 如何控制窗口何时关闭?

我有一个绘制一些海龟图形的小 python 脚本。当我的脚本运行完成后,乌龟屏幕会自动关闭,所以为了能看到一段时间的图形,我必须time.sleep(5)在脚本结束时使用延迟关闭。

有什么办法可以让这更加动态,即告诉python我想自己控制窗口的关闭?我不介意脚本在等待我的命令时是否不能做任何其他事情,但如果我不必去控制台执行 aread()或其他操作,我会更喜欢。理想情况下,即使脚本完成运行,画布也应该保持打开状态,但我可以接受一个停止脚本的解决方案,直到我关闭包含画布的窗口(或单击画布,或其他任何东西......)。

我该如何做到这一点?