如何防止 GtkPaned 的句柄被移动

如何防止 GtkPaned 的句柄被移动

如何防止 GtkPaned 的句柄被移动?例如,我想根据 GtkToggleButton 的状态锁定它。

答案1

假设 GtkToggleButton 的 True 状态锁定了 GtkPaned 的句柄,则可以通过以下方式实现此行为:

  1. 将 GtkPaned 连接到按钮按下事件
  2. 从处理程序返回 GtkToggleButton 状态

这是一个使用 pygtk 的 Python 简单示例

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()

可能仍然可以使用键盘移动手柄,因此您也需要连接到移动手柄信号以实现完全锁定。

相关内容