Форум сайта python.su
Мне вот итересно как спомощью gtk можно получить координаты (xy) текущего положения курсора? Я знаю как это сделать другими путями - через tkinter или win32gui но хочется узнать как это в gtk делается.
нашел нечто похожее на необходимое, но до меня ни как не доходит, что им надо передать в качестве атрибута.
gtk.gdk.pointer_grab()
gtk.gdk.Display.get_pointer()
это был главный вопрос, а вот еще парочку в дополнение.
как создать окно без titleBar ?
если использовать glade xml то можно ли после импорта проделать с гуи что нибуть типа gtk.Window.move()?
Офлайн
1) Координаты:
я когда-то делал так:
…
def on_cursor_move(self, widget, event):
print int(event.x), int(event.y)
…
self.treeview.connect(“motion-notify-event”, self.on_cursor_move)
думаю в других виджетах аналогично, поищи в pygtk FAQ как выводить gtk.Tooltips() в нужном месте
2)
window = gtk.Window(gtk.WINDOW_POPUP)
будет без кнопок закрытия, типа как выплывающие сообщения notify в асях, плеерах и тп
3)
ты импортируешь объекты, в *.glade задаёшь всякие размеры и параметры, после чего можешь делать всё, что возможно )
если я правильно понял вопросы
Офлайн
slav0nicчто то очень сложно посмотрел в фак там лежит пример TreeViewTooltips.py я сильно пока в него не всматривался но как я понял это сообщает координаты курсора при пересечении с каким нибуть виджетом, если это так то мне надо немного другое:
1) Координаты:
я когда-то делал так:
…
def on_cursor_move(self, widget, event):
print int(event.x), int(event.y)
…
self.treeview.connect(“motion-notify-event”, self.on_cursor_move)
думаю в других виджетах аналогично, поищи в pygtk FAQ как выводить gtk.Tooltips() в нужном месте
Офлайн
slav0nicне допонял немного - лучше на наглядных примерах
3)
ты импортируешь объекты, в *.glade задаёшь всякие размеры и параметры, после чего можешь делать всё, что возможно )
если я правильно понял вопросы
Офлайн
lwgen
по поводу курсора
вот пример
#1
import gtk, gtk.gdk
def mouse_move(self, event):
lable.set_text(“координаты %d %d”%(event.x, event.y))
window = gtk.Window()
lable = gtk.Label(“координаты:”)
window.add(lable)
window.add_events(gtk.gdk.MOTION_NOTIFY | gtk.gdk.BUTTON_PRESS)
window.connect('motion-notify-event', mouse_move)
window.connect(“destroy”, gtk.main_quit)
window.show_all()
gtk.main()
думаю если по виджетам водить будешь мышаком, это тоже будет работать
c http://www.async.com.br/faq/pygtk/index.py?req=show&file=faq23.024.htp
23.24. Can GTK know the mouse position outside of GTK Application?про glade не скажу, вохможно где-то чего-то не так с каким-то property или не так описал ф-цию, или ещё что%)
To get the position relative to a given window
gdkwindow.get_pointer()
If you need the absolute position, call get_pointer on the root window of the current screen:
rootwin = widget.get_screen().get_root_window()
x, y, mods = rootwin.get_pointer()
If you call get_pointer() on some other GdkWindow, the result will be relative to the position of that window (so you can get negative coordinates)
(James Henstridge)
Офлайн
Спасибо, в общем все понял.
Офлайн