[英]resize borderless window with vpaned in python+gtk3
我想使用平移(分隔符)对象调整无边界窗口的大小,如果您知道终端应用程序guake会使用motion-notify-event执行此操作
这是代码:
self.resizer.connect('motion-notify-event', self.on_resizer_drag)
def on_resizer_drag(self, widget, event):
"""Method that handles the resize drag. It does not actuall
moves the main window. It just set the new window size in
gconf.
"""
(x, y), mod = event.device.get_state(widget.window)
if not 'GDK_BUTTON1_MASK' in mod.value_names:
return
max_height = self.window.get_screen().get_height()
percent = y / (max_height / 100)
if percent < 1:
percent = 1
self.client.set_int(KEY('/general/window_height'), int(percent))
Resizer是平移对象,但是此代码使用pygtk(gtk2)我正在将python-gobject与gtk3事件一起使用。device.get_state(window)方法已弃用或更改。 这对我不起作用,有关使用对象拖动来调整无边界窗口大小的任何建议或解决方案?
我自己将Guake的代码实现到Gtk3。
首先连接运动通知事件,调整器是摇摄对象。
self.resizer.connect('motion-notify-event', self.on_resize)
下次写入调整大小事件
def on_resize(self, widget, event):
if Gdk.ModifierType.BUTTON1_MASK & event.get_state() != 0:
mouse_y = event.device.get_position()[2]
new_height = mouse_y - self.get_position()[1]
if new_height > 0:
self.resize(self.get_allocation().width, new_height)
self.show()
现在您可以使用装订线扩展窗口。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.