我一直在为Linux开发类似码头的程序,但是问题是当我想在Windows(xp/vista/7)上运行它们时,这些属性不起作用:
self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DOCK)
和
self.window.get_toplevel().show() # must call show() before property_change()
self.window.get_toplevel().window.property_change("_NET_WM_STRUT",
"CARDINAL", 32, gtk.gdk.PROP_MODE_REPLACE, [0, 0, 0, bottom_width])
除了其他停靠属性外,它还显示窗口边框(装饰),并且不保留其自己的空间。
简而言之,上面的行的行为就好像它们不在那儿一样
我必须进行哪些修改才能使其正常工作?
附言我已经安装了所有需要的二进制文件
提前谢谢:)
最佳答案
WINDOW_TYPE_HINT_DOCK
根本没有在Windows端口中实现(或者,什么也不做);您可以在GDK source中确认这一点。从理论上讲-即使在X中-窗口管理器也不需要对类型提示进行任何操作(请参阅EWMH spec)。如果您不需要 window 装饰,只需使用gtk_window_set_decorated将其移除。
问题第二部分的答案类似,只是这次很容易确认:它指的是NetWM,它与EWMH相同,是X11。要在Windows中实现struts,我很确定您必须使用Win32 API自行完成。 (我不知道如何,但是如果您需要窗口句柄,则在window.window.handle
中。)
关于python - pygtk WINDOW_TYPE_HINT_DOCK在Windows上不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6557481/