2024-06-16 12:20:08 发布
网友
如何在Python混乱中设置X11的显示?我正在尝试将其设置为XSCREENSAVER_窗口。我尝试过导入clair.x11并使用set\u display(),但这似乎不是正确的命令。有人知道这样做的正确方法吗?在
在四处搜索时,我发现了this thread,通过查看头像图片,我假设这是你的线程;)我将发布由LemursDontExist给出的代码,这样你就可以把它们都放在一个整体中了。在
简要说明:在xwindows中,要使程序成为屏幕保护程序,程序会检查它是否以屏幕保护程序的形式运行,这意味着它是否被窗口系统调用。这是通过检查环境变量DISPLAY是否设置为XSCREENSAVER_WINDOW来完成的。在
DISPLAY
XSCREENSAVER_WINDOW
在这种情况下,程序需要全屏显示并对某些事件做出反应。下面的代码就是这样做的。设置此变量是通过xscreensaver应用程序完成的,您不必自己设置。在
缺少的是clutter-gtkpython绑定。在当前的Ubuntu中,包名是gir1.2-clutter-gtk-0.10。这样,就可以将自定义窗口类与杂波API一起使用。在
clutter-gtk
gir1.2-clutter-gtk-0.10
class GsThemeWindow(gtk.Window): __gtype_name__ = 'GsThemeWindow' def __init__(self): super(GsThemeWindow, self).__init__() self.connect("destroy", gtk.main_quit) def do_realize(self): ident = os.environ.get('XSCREENSAVER_WINDOW') if not ident is None: self.window = gtk.gdk.window_foreign_new(int(ident, 16)) self.window.set_events(gtk.gdk.EXPOSURE_MASK | gtk.gdk.STRUCTURE_MASK) x, y, w, h, depth = self.window.get_geometry() self.size_allocate(gtk.gdk.Rectangle(x, y, w, h)) self.set_default_size(w, h) self.set_decorated(False) else: self.window = gtk.gdk.Window( self.get_parent_window(), width=self.allocation.width, height=self.allocation.height, window_type=gtk.gdk.WINDOW_TOPLEVEL, wclass=gtk.gdk.INPUT_OUTPUT, event_mask=self.get_events() | gtk.gdk.EXPOSURE_MASK) self.window.set_user_data(self) self.style.attach(self.window) self.set_flags(self.flags() | gtk.REALIZED)
有关如何在python中使用杂波的简短概述(它已经改变了很多),请参见this example
在四处搜索时,我发现了this thread,通过查看头像图片,我假设这是你的线程;)我将发布由LemursDontExist给出的代码,这样你就可以把它们都放在一个整体中了。在
简要说明:在xwindows中,要使程序成为屏幕保护程序,程序会检查它是否以屏幕保护程序的形式运行,这意味着它是否被窗口系统调用。这是通过检查环境变量
DISPLAY
是否设置为XSCREENSAVER_WINDOW
来完成的。在在这种情况下,程序需要全屏显示并对某些事件做出反应。下面的代码就是这样做的。设置此变量是通过xscreensaver应用程序完成的,您不必自己设置。在
缺少的是
clutter-gtk
python绑定。在当前的Ubuntu中,包名是gir1.2-clutter-gtk-0.10
。这样,就可以将自定义窗口类与杂波API一起使用。在有关如何在python中使用杂波的简短概述(它已经改变了很多),请参见this example
相关问题 更多 >
编程相关推荐