Нажмите событие в любой части окна с pygtk.Window - PullRequest
1 голос
/ 20 января 2012

Я использую pygtk с glade для создания простой программы, которая (на данный момент) состоит из:

GUI: сетка 4x4, каждая из которых показывает имя.Под сеткой идет текстовая запись.Программа работает в полноэкранном режиме.

ПОВЕДЕНИЕ: Каждое имя будет «выбираемым» для 10 сек в бесконечном цикле.«Выбираемый» означает, что, где бы пользователь ни щелкнул, имя, которое запускается в течение 10 секунд, выбирается и помещается в TextEntry.

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

1 Ответ

0 голосов
/ 20 января 2012

Чтобы обнаружить щелчок в любом месте экрана, вы можете подключить обратный вызов для button-press-event. Обратите внимание, что это событие gdk, и вы должны добавить это событие в маску методом add_events.

Следующая небольшая программа должна быть полезной:

import gtk

def callback(window, event):
    assert event.type == gtk.gdk.BUTTON_PRESS
    print 'Clicked at x={0}, y={0}'.format(event.x, event.y)

window = gtk.Window()
window.add_events(gtk.gdk.BUTTON_PRESS_MASK)
window.connect('button-press-event', callback)
window.connect('destroy', lambda w: gtk.main_quit())
window.show_all()

gtk.main()
...