pygtk WINDOW_TYPE_HINT_DOCK 在Windows上无效
我一直在为Linux开发一个类似于Dock的程序,但问题是当我想在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])
它显示了窗口边框(装饰),而且没有留出自己的空间。
简单来说,上面的代码就像不存在一样。
我需要修改什么才能让它正常工作呢?
附注:我已经安装了所有需要的程序文件。
提前谢谢大家 :)
1 个回答
1
WINDOW_TYPE_HINT_DOCK
在Windows版本中根本没有实现(或者说实现了但没什么用);你可以在GDK源代码中确认这一点。理论上来说,即使在X系统中,窗口管理器也不一定要对类型提示做什么(详细信息可以查看EWMH规范)。如果你不想要窗口的装饰,可以直接用gtk_window_set_decorated这个函数去掉它。
你问题的第二部分答案也差不多,不过这次很容易确认:它指的是NetWM,这和EWMH是一样的,都是X11系统的东西。要在Windows中实现struts(也就是窗口的边界),我很确定你得自己用Win32 API来做。(我不知道具体怎么做,但如果你需要窗口句柄,可以在window.window.handle
中找到。)