1 | from gi.repository import Gtk |
---|
2 | from gi.repository import Gdk |
---|
3 | |
---|
4 | def _destroy_cb(widget, data=None): |
---|
5 | Gtk.main_quit() |
---|
6 | |
---|
7 | def __leave_notify_event_cb(widget, event): |
---|
8 | print 'leave: ', widget, event.mode |
---|
9 | |
---|
10 | def __button_release_event_cb(widget, event): |
---|
11 | print 'button release: ', widget, event.button |
---|
12 | |
---|
13 | window = Gtk.Window() |
---|
14 | window.connect("destroy", _destroy_cb) |
---|
15 | window.show() |
---|
16 | |
---|
17 | box = Gtk.VBox() |
---|
18 | window.add(box) |
---|
19 | box.show() |
---|
20 | |
---|
21 | model = Gtk.ListStore(str) |
---|
22 | for icon in ['one', 'two', 'three']: |
---|
23 | model.append([icon]) |
---|
24 | |
---|
25 | treeview = Gtk.TreeView() |
---|
26 | treeview.set_model(model) |
---|
27 | box.add(treeview) |
---|
28 | treeview.show() |
---|
29 | treeview.connect('leave-notify-event', |
---|
30 | __leave_notify_event_cb) |
---|
31 | treeview.connect('button-release-event', |
---|
32 | __button_release_event_cb) |
---|
33 | #treeview.add_events(Gdk.EventMask.BUTTON_PRESS_MASK | |
---|
34 | # Gdk.EventMask.TOUCH_MASK | |
---|
35 | # Gdk.EventMask.BUTTON_RELEASE_MASK) |
---|
36 | |
---|
37 | col = Gtk.TreeViewColumn() |
---|
38 | treeview.append_column(col) |
---|
39 | |
---|
40 | cell_text = Gtk.CellRendererText() |
---|
41 | col.pack_start(cell_text, expand=True) |
---|
42 | col.add_attribute(cell_text, 'text', 0) |
---|
43 | |
---|
44 | button = Gtk.Button(label='Click me!') |
---|
45 | box.add(button) |
---|
46 | button.show() |
---|
47 | button.connect('leave-notify-event', |
---|
48 | __leave_notify_event_cb) |
---|
49 | button.connect('button-release-event', |
---|
50 | __button_release_event_cb) |
---|
51 | |
---|
52 | |
---|
53 | Gtk.main() |
---|