2

我一直在为 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]) 

除了其他停靠属性之外,它还显示窗口边框(装饰),并且不保留自己的空间。

简单地说,上面的行表现得好像它们不存在

我必须修改什么才能使其工作?

PS我已经安装了所有需要的二进制文件

提前谢谢:)

4

1 回答 1

1

WINDOW_TYPE_HINT_DOCK根本没有在 Windows 端口中实现(或者更确切地说,实现什么都不做);您可以在GDK 源代码中确认这一点。理论上——即使在 X 中——窗口管理器不需要对类型提示做任何事情(参见EWMH 规范)。如果您不想要窗口装饰,只需使用gtk_window_set_decorated将其删除。

你问题第二部分的答案是类似的,只不过这次很容易确认:它指的是NetWM,它与EWMH相同,是X11的东西。要在 Windows 中实现 struts,我很确定您必须使用 Win32 API 自己完成。(我不知道怎么做,但如果你需要窗口句柄,它就在window.window.handle.)

于 2011-07-02T22:46:50.393 回答