изменить размер окна без полей с помощью vpaned в python + gtk3

Я хочу изменить размер окна без полей с помощью панорамного (разделительного) объекта. Если вы знаете, что терминальное приложение guake делает это с помощью события-уведомления о движении

вот код:

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 event.device.get_state(window) устарел или изменен. Это не работает для меня, какой-нибудь совет или решение по изменению размера окна без полей с перетаскиванием объекта?


person Özcan Esen    schedule 30.11.2012    source источник


Ответы (1)


Я сам внедрил код Гуаке в 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()

теперь вы можете расширить свое окно с помощью желоба.

person Özcan Esen    schedule 01.12.2012