Показать Gtk.Popover при наведении курсора Gtk.Запись

#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.