Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python xlib管理我的应用程序窗口?_Python_Linux_Window_X11_Xlib - Fatal编程技术网

如何使用python xlib管理我的应用程序窗口?

如何使用python xlib管理我的应用程序窗口?,python,linux,window,x11,xlib,Python,Linux,Window,X11,Xlib,我想找到一种linux范围(只要它使用X11)的方法来控制我的应用程序的窗口几何结构,我使用Python编程。我所有的研究都指向使用,这恰好是非常糟糕的记录 我想要实现的是: 定义窗口在屏幕上的位置 定义最小和最大尺寸 启用/禁用窗口大小调整 为窗口保留屏幕空间 把窗户放在上面/下面 跳过或不跳过任务栏(又名窗口列表) 设置窗户装饰/未装饰 设置窗口标志(正常、弹出、对话、飞溅、停靠、忽略) 注意:我不想用Xlib创建窗口,而是想告诉X如何处理我用一些GUI库(例如PyQt)创建的窗口 我该

我想找到一种linux范围(只要它使用X11)的方法来控制我的应用程序的窗口几何结构,我使用Python编程。我所有的研究都指向使用,这恰好是非常糟糕的记录

我想要实现的是:

  • 定义窗口在屏幕上的位置
  • 定义最小和最大尺寸
  • 启用/禁用窗口大小调整
  • 为窗口保留屏幕空间
  • 把窗户放在上面/下面
  • 跳过或不跳过任务栏(又名窗口列表)
  • 设置窗户装饰/未装饰
  • 设置窗口标志(正常、弹出、对话、飞溅、停靠、忽略)
注意:我不想用Xlib创建窗口,而是想告诉X如何处理我用一些GUI库(例如PyQt)创建的窗口

我该怎么做呢?我意识到这是一个很大的问题:你有没有关于我如何抓住窗户的提示?在模块中的什么地方可以找到我的答案


编辑:n.m.的答案提供了大量资源,还有一个关于如何控制X显示的应用程序窗口的好例子。

您需要知道的第一个关键字是ICCCM。您需要熟悉ICCCM手册(请参阅)及其FreeDesktop扩展(请参阅)。至于你的问题

我怎样才能抓住我的窗户


我不太明白。调用
create\u window
,函数返回窗口对象。还是说别的?

谢谢,我会查一下医生的。通过“抓住窗口”,我的意思是:我想用PyGI、PyQt、PyWx或Kivy等工具在Python中创建我的窗口,然后我想在X正在管理的窗口中找到这个窗口,并告诉X这个窗口应该按照我想要的方式处理,例如,在屏幕上保留空间。所以我不想用xlib创建窗口,我只想告诉X窗口管理器如何使用它。我想我明白了。哈!ICCM看起来像是我需要开始的。我现在仍然需要一些特定于Python xlib的信息。
create_window
返回一个类为
window
的Python对象,该对象中应该包含一个低级窗口句柄a.k.a.窗口ID(一些整数)。您可能永远不应该直接使用此句柄。库应该将所有必要的服务包装在
窗口
类的方法中,也可能包装在接受
窗口
对象作为参数的一些其他函数中。