Как предотвратить перемещение ручки GtkPaned

Как я могу предотвратить перемещение дескриптора GtkPaned? Например, я хочу заблокировать его в соответствии со статусом GtkToggleButton.

1 ответ

Предполагая, что состояние True GtkToggleButton блокирует дескриптор GtkPaned, такое поведение может быть достигнуто путем:

  1. подключение GtkPaned к событию нажатия кнопки
  2. возврат с состоянием GtkToggleButton из обработчика

Вот минималистичный пример в Python с использованием pygtk

import gtk

def on_paned_button_press_event(*args):
    return toggle.get_active() # This is step 2.

win = gtk.Window()
win.set_title('Lock/Unlock the GtkPaned handle example')
win.set_size_request(400, 100)

paned = gtk.HPaned()
toggle = gtk.ToggleButton('Toggle me')
toggle.set_size_request(100, -1)
paned.add1(toggle)
paned.add2(gtk.Label('Toggle the button on the left to lock/unlock the handle'))

paned.connect('button-press-event', on_paned_button_press_event) # This is step 1.

win.add(paned)

win.connect('destroy', gtk.main_quit)

win.show_all()

gtk.main()

Возможно, все еще можно будет перемещать ручку с помощью клавиатуры, поэтому вам также необходимо подключиться к сигналу ручки перемещения для полной блокировки.

Другие вопросы по тегам