#c #gtk #vala
#c #gtk #вала
Вопрос:
Я хочу показать a Gtk.Popover
в положении курсора a Gtk.Entry
. Я могу добавлять всплывающее окно только относительно самой записи, но Gtk.Popover
оно появляется в центре Gtk.Entry
каждый раз.
Есть ли способ, как я могу получить положение моего Gtk.Entry
курсора и создать всплывающее окно в этой позиции?
Ответ №1:
Вы должны установить виджет, относительно которого находится ваше всплывающее окно, с помощью Gtk.Popover.relative_to
; затем вы можете использовать Gtk.Popover.pointing_to
и прямоугольник с местоположением курсора. Чтобы получить это, используйте Gtk.Entry.cursor_position
для извлечения индекса курсора в символах и преобразования его в местоположение в Pango.Макет Gtk.Entry
виджета; если запись разрешено прокручивать, вы также должны получить Gtk.Entry.scroll_offset
и вычесть ее из координат, возвращаемых Pango.