Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用python中的vpaned调整无边框窗口的大小+;gtk3_Python_Pygtk_Gtk3_Pygobject_Borderless - Fatal编程技术网

用python中的vpaned调整无边框窗口的大小+;gtk3

用python中的vpaned调整无边框窗口的大小+;gtk3,python,pygtk,gtk3,pygobject,borderless,Python,Pygtk,Gtk3,Pygobject,Borderless,我想用窗格(分隔符)对象调整无边框窗口的大小,如果您知道终端应用程序guake使用motion notify事件来实现这一点的话 代码如下: 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 mo

我想用窗格(分隔符)对象调整无边框窗口的大小,如果您知道终端应用程序guake使用motion notify事件来实现这一点的话

代码如下:

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))
self.resizer.connect('motion-notify-event',self.on\u resizer\u拖动)
大小调整器拖动时的def(自身、小部件、事件):
“”方法,该方法处理调整大小拖动。它不实际
移动主窗口。它只是设置新窗口的大小
gconf。
"""
(x,y),mod=event.device.get_state(widget.window)
如果mod.value\u名称中没有“GDK\u按钮1\u掩码”:
返回
max_height=self.window.get_screen().get_height()
百分比=y/(最大高度/100)
如果百分比<1:
百分比=1
self.client.set_int(键('/general/window_height'),int(百分比))

Resizer是paned对象,但是使用pygtk(gtk2)的代码我使用的是带有gtk3 event.device.get_state(window)方法的python gobject不推荐或更改。这对我来说不管用,关于用对象拖动调整窗口无边框窗口的大小有什么建议或解决方案吗?

我自己将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()
现在,您可以使用檐槽展开窗口